From 571f14acc0045f15a69e44557bff601d270726a9 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Thu, 25 Feb 2021 16:42:12 -0500 Subject: partvi: eliminate code duplication --- src/partvi | 69 ++++++++++++++++++++++++++++---------------------------------- 1 file changed, 31 insertions(+), 38 deletions(-) diff --git a/src/partvi b/src/partvi index 8ae793d..5963ff6 100755 --- a/src/partvi +++ b/src/partvi @@ -262,11 +262,8 @@ pee_on_table() start=0 iterate_partitions create_ptable_conf - ( - set -x - $sudo sfdisk --no-tell-kernel "$dev" < "$GPT_TABLE_FILE" || return - $sudo sfdisk --no-tell-kernel -Y dos "$dev" < "$DOS_TABLE_FILE" || return - ) + loudly $sudo sfdisk --no-tell-kernel "$dev" < "$GPT_TABLE_FILE" || return + loudly $sudo sfdisk --no-tell-kernel -Y dos "$dev" < "$DOS_TABLE_FILE" || return } check_for_key_only_skip() @@ -343,39 +340,35 @@ $sudo kpartx -su "$whole" trap cleanup EXIT -for f in part*.conf -do - [ "$f" != part0.conf ] || continue - notice "Processing $f" - img=${f%.conf} - dev=/dev/mapper/${whole#/dev/}p${img#part} - mnt=${f%.conf}.mnt - - read_config_file || warn "Received error return from command: read_config_file $img" - require_var name - require_var type - case "$type" in - dm-verity-hashes|partition-table|bios-grub) ;; - efi-system-partition|boot|samizdat-keys) - mkdir -p "$mnt" - loudly $sudo mount "$dev" "$mnt" - - case "$type" in - boot) - BOOT_DIR=$mnt - install_boot_dir "$mnt" - ;; - samizdat-keys) - $sudo rsync -a --info=STATS "$GPG_INPUT_DIR"/ "$mnt"/gnupghome/ - ;; - efi-system-partition) - EFI_DIR=$mnt - ;; - esac - ;; - *) notice "Not mounting $name" ;; - esac -done +copy_data_to_mounted_target_filesystems() +{ + case "$type" in + efi-system-partition|boot|samizdat-keys) ;; + dm-verity-hashes|partition-table|bios-grub) return ;; + *) notice "Not mounting $name"; return ;; + esac + + img=${f%.conf} + dev=/dev/mapper/${whole#/dev/}p${img#part} + mnt=${f%.conf}.mnt + + mkdir -p "$mnt" + loudly $sudo mount "$dev" "$mnt" + + case "$type" in + boot) + BOOT_DIR=$mnt + install_boot_dir "$mnt" + ;; + samizdat-keys) + $sudo rsync -a --info=STATS "$GPG_INPUT_DIR"/ "$mnt"/gnupghome/ + ;; + efi-system-partition) + EFI_DIR=$mnt + ;; + esac +} +iterate_partitions copy_data_to_mounted_target_filesystems loudly $sudo eatmydata -- grub-install --target=i386-pc --recheck --boot-directory="$BOOT_DIR" "$whole" loudly $sudo eatmydata -- grub-install --target=x86_64-efi --recheck --removable --efi-directory="$EFI_DIR" "$whole" || true -- cgit v1.2.3