]> code.delx.au - monosys/commitdiff
multiboot-setup ignores missing files
authorJames Bunton <jamesbunton@delx.net.au>
Fri, 3 May 2019 10:37:38 +0000 (20:37 +1000)
committerJames Bunton <jamesbunton@delx.net.au>
Fri, 3 May 2019 10:37:38 +0000 (20:37 +1000)
- also deduplicated some hardcoded paths

multiboot-setup

index 8834db2c91b03779817f89c38703b6d1a9c5a4e3..6e8c1b89ad33d03a0e502dda1799db25d03591f9 100755 (executable)
@@ -20,7 +20,7 @@ function cmd_format {
 }
 
 function cmd_grub {
-    DISK_DEVICE="$(mount|grep /mnt/multiboot|cut -d' ' -f1|sed 's/[0-9]*$//')"
+    DISK_DEVICE="$(findmnt -n -o source "$MULTIBOOT_MNT" | sed 's/[0-9]*$//')"
     if [ ! -b "$DISK_DEVICE" ]; then
         echo "ERROR! Could not find disk to install bootloader. Try using mount."
         exit 1
@@ -64,7 +64,7 @@ function install_grub_cfg {
 function cmd_mount {
     set -x
 
-    PARTITION_DEVICE="$(readlink -f /dev/disk/by-label/multiboot)"
+    PARTITION_DEVICE="$(readlink -f "/dev/disk/by-label/${PARTITION_LABEL}")"
     sudo mkdir -p "$MULTIBOOT_MNT"
     while sudo umount "$PARTITION_DEVICE" &> /dev/null; do true; done
     sudo mount "$PARTITION_DEVICE" "$MULTIBOOT_MNT" -o "uid=$(whoami)"
@@ -107,7 +107,9 @@ function setup_arch {
   }
 }
 for iso in /archlinux-*.iso; do
-  setup_arch \$iso
+  if [ -f "\$iso" ]; then
+    setup_arch \$iso
+  fi
 done
 
 function setup_debian {
@@ -118,7 +120,9 @@ function setup_debian {
   }
 }
 for iso in /debian-live-*.iso; do
-  setup_debian \$iso
+  if [ -f "\$iso" ]; then
+    setup_debian \$iso
+  fi
 done
 
 if [ -f /memdisk -a -f /FD12LITE.zip ]; then
@@ -142,7 +146,9 @@ function setup_fedora {
   }
 }
 for iso in /Fedora-Workstation-Live-*.iso; do
-  setup_fedora \$iso
+  if [ -f "\$iso" ]; then
+    setup_fedora \$iso
+  fi
 done
 
 function setup_ubuntu {
@@ -153,7 +159,9 @@ function setup_ubuntu {
   }
 }
 for iso in /ubuntu-*-desktop-*.iso; do
-  setup_ubuntu \$iso
+  if [ -f "\$iso" ]; then
+    setup_ubuntu \$iso
+  fi
 done
 
 EOT