Fix set -e crash in image detection and device selection
ls glob on empty cache dir exits non-zero and kills script under set -euo pipefail. Switched to find which exits 0 on no matches. Same fix for grep|sed pipeline in device selection; added empty DEVICE guard.
This commit is contained in:
@@ -83,9 +83,10 @@ echo -n -e "${CYAN}Enter device number (1-9):${NC} "
|
|||||||
read -r device_num
|
read -r device_num
|
||||||
[[ "$device_num" =~ ^[1-9]$ ]] || error "Invalid selection"
|
[[ "$device_num" =~ ^[1-9]$ ]] || error "Invalid selection"
|
||||||
|
|
||||||
device_row=$(lsblk -ndo NAME,SIZE,LABEL,TYPE | grep -E "^(sd|mmc)" | sed -n "${device_num}p")
|
device_row=$(lsblk -ndo NAME,SIZE,LABEL,TYPE | grep -E "^(sd|mmc)" | sed -n "${device_num}p" || true)
|
||||||
DEVICE=$(echo "$device_row" | awk '{print $1}')
|
DEVICE=$(echo "$device_row" | awk '{print $1}')
|
||||||
DEVICE_SIZE=$(echo "$device_row" | awk '{print $2}')
|
DEVICE_SIZE=$(echo "$device_row" | awk '{print $2}')
|
||||||
|
[[ -n "$DEVICE" ]] || error "Invalid selection — no device at that number"
|
||||||
|
|
||||||
info "Selected: /dev/${DEVICE} (${DEVICE_SIZE})"
|
info "Selected: /dev/${DEVICE} (${DEVICE_SIZE})"
|
||||||
warn "This will OVERWRITE all data on /dev/${DEVICE}"
|
warn "This will OVERWRITE all data on /dev/${DEVICE}"
|
||||||
@@ -101,7 +102,7 @@ info "Device confirmed: /dev/${DEVICE}"
|
|||||||
section "Image Management"
|
section "Image Management"
|
||||||
|
|
||||||
# Look for existing cached image
|
# Look for existing cached image
|
||||||
CACHED_IMAGE=$(ls -1 "$CACHE_DIR"/Armbian_*_Orangepizero3_bookworm_current_*_minimal.img.xz 2>/dev/null | head -1)
|
CACHED_IMAGE=$(find "$CACHE_DIR" -maxdepth 1 -name 'Armbian_*_Orangepizero3_bookworm_current_*_minimal.img.xz' 2>/dev/null | head -1 || true)
|
||||||
|
|
||||||
if [[ -n "$CACHED_IMAGE" ]]; then
|
if [[ -n "$CACHED_IMAGE" ]]; then
|
||||||
info "Found cached image: $(basename $CACHED_IMAGE)"
|
info "Found cached image: $(basename $CACHED_IMAGE)"
|
||||||
|
|||||||
Reference in New Issue
Block a user