Browse Source

armbian_rootenc_setup.sh: minor fix and improvement

The MMGen Project 2 years ago
parent
commit
e8e426f90a
1 changed files with 6 additions and 4 deletions
  1. 6 4
      scripts/armbian_rootenc_setup.sh

+ 6 - 4
scripts/armbian_rootenc_setup.sh

@@ -225,7 +225,7 @@ check_sdcard_name_and_params() {
 	[ "${dev:0:5}" == '/dev/' ] || dev="/dev/$dev"
 	[ -e "$dev" ] || die "$dev does not exist"
 	chk="$(lsblk --noheadings --nodeps --list --output=TYPE $dev 2>/dev/null)"
-	[ "$chk" != 'disk' ] && {
+	[ "$chk" != 'disk' -a "$chk" != 'loop' ] && {
 		[ "$chk" == 'part' ] && die "$dev is a partition, not a block device!"
 		die "$dev is not a block device!"
 	}
@@ -263,6 +263,7 @@ _get_user_var() {
 		return 0
 	}
 
+	if [ "$pat" == 'bool' ]; then READOPTS='-n1' READNL="\n"; else READOPTS='' READNL=''; fi
 	while true; do
 		if [ -z "${!var}" -o "$seen_prompt" -o "$redo" ]; then
 			if [ "$seen_prompt" ]; then
@@ -282,7 +283,7 @@ _get_user_var() {
 				fi
 				seen_prompt=1
 			fi
-			eval "read $var"
+			eval "read $READOPTS $var"; echo -ne "$READNL"
 		fi
 		redo=1
 		if [ -z "${!var}" -a "$dfl" ]; then eval "$var=$dfl"; fi
@@ -779,9 +780,10 @@ partition_sd_card() {
 	p2_start=$((p1_end+1))
 	fdisk_cmds="o\nn\np\n1\n$START_SECTOR\n$p1_end\nn\np\n2\n$p2_start\n\nw\n"
 
-	set +e
+	set +e; trap - ERR # fdisk exits with error if partition table cannot be re-read
 	echo -e "$fdisk_cmds" | fdisk "/dev/$SDCARD_DEVNAME"
-	set -e
+	set -e; trap '_error_handler' ERR
+
 	do_partprobe
 
 	bname="$(lsblk --noheadings --list --output=NAME /dev/$BOOT_DEVNAME)"