fix chboot options
[automated-distro-installer] / chboot
diff --git a/chboot b/chboot
index 426fd9a2cef87b83d8fbf22fc6fc146cd7223b38..b90b9261187bd5ab6aaff97110a88cb819ad822e 100755 (executable)
--- a/chboot
+++ b/chboot
@@ -39,9 +39,12 @@ EOF
     exit $1
 }
 
+
+grub_extn=4
+
 ###### begin command line parsing #####
 reboot=true
-temp=$(getopt -l opt o "$@") || usage 1
+temp=$(getopt -l help hdr "$@") || usage 1
 eval set -- "$temp"
 while true; do
     case $1 in
@@ -58,7 +61,8 @@ distro=$1
 
 if [[ ! $distro ]]; then
     echo "available distros:"
-    btrfs subvolume list /boot | sed -rn 's/^.*boot_(.*)/\1/p'
+    cur=$(btrfs subvol show /boot| sed -rn 's/^.*Name:\s*(\S*).*/\1/p')
+    btrfs subvolume list /boot | awk '{print $9}' | sed "s/$cur/$cur (current)/"
     exit 0
 fi
 
@@ -90,6 +94,13 @@ boot_disk=${boot_dev%%[0-9]*}
 # https://www.gnu.org/software/grub/manual/html_node/Device-map.html
 e grub-bios-setup -d $mount_point/grub/i386-pc -s -m $mount_point/grub/device.map $boot_disk
 
+# todo, mount_point needs subvolid=0
+
+e umount $mount_point
+
+e mount $boot_disk$grub_extn $mount_point
+e grub-editenv $mount_point/grubenv set last_boot=/boot_$distro
+e grub-editenv $mount_point/grubenv set did_fai_check=true
 e umount $mount_point
 e rmdir $mount_point