From bf7afca5c6aea2d47e6b6cabc0df0aee84e5f65d Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Sat, 17 Jun 2023 18:18:16 -0400 Subject: cleaner code --- Makefile | 2 +- src/extract-efi-boot-files.bash | 37 ------------------------------------- src/extract-part1-files.bash | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 38 deletions(-) delete mode 100755 src/extract-efi-boot-files.bash create mode 100755 src/extract-part1-files.bash diff --git a/Makefile b/Makefile index 946f22c..52e6a09 100644 --- a/Makefile +++ b/Makefile @@ -35,5 +35,5 @@ $(zip): $(ver_files): $(img) $(ver) $(call sha256_check_file,$(img)) sudo systemd-run --working-directory $(ver) --wait -P -p PrivateMounts=yes -- \ - $$PWD/src/extract-efi-boot-files.bash $$PWD/$(img) $(efi_files) + $$PWD/src/extract-part1-files.bash $$PWD/$(img) EFI/BOOT $(efi_files) $(call sha256_check_file,$@) diff --git a/src/extract-efi-boot-files.bash b/src/extract-efi-boot-files.bash deleted file mode 100755 index 25a3006..0000000 --- a/src/extract-efi-boot-files.bash +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -set -e -set -o pipefail - -image=$1 -[ -e "$image" ] -shift -base_dir=EFI/BOOT -source_files=("$@") - -get_fsdev() -{ - read < <(kpartx -rav "$image") - set -- $REPLY - if [[ $* == 'add map '*' '* ]] - then - fsdev=/dev/mapper/$3 - else - echo "Error: kpartx: $REPLY" >&2 - exit 1 - fi -} - -cleanup() -{ - umount -v /mnt - dev=$(losetup -j "$image" -nO NAME) - [ "$dev" ] || exit 0 - kpartx -d "$dev" || true - losetup -d "$dev" || true -} - -get_fsdev -mount -v -r "$fsdev" /mnt -trap cleanup EXIT -source_dir=/mnt/$base_dir -cp -v --no-preserve=mode -t . -- "${source_files[@]/#/$source_dir/}" diff --git a/src/extract-part1-files.bash b/src/extract-part1-files.bash new file mode 100755 index 0000000..9b8ff1b --- /dev/null +++ b/src/extract-part1-files.bash @@ -0,0 +1,39 @@ +#!/bin/bash +set -e +set -o pipefail + +image=$1 +[ -e "$image" ] +shift +base_dir=$1 +[ "$base_dir" ] +shift +source_files=("$@") + +get_fsdev() +{ + read < <(kpartx -rav "$image") + set -- $REPLY + if [[ $* == 'add map '*' '* ]] + then + fsdev=/dev/mapper/$3 + else + echo "Error: kpartx: $REPLY" >&2 + exit 1 + fi +} + +cleanup() +{ + umount -v /mnt + dev=$(losetup -j "$image" -nO NAME) + [ "$dev" ] || exit 0 + kpartx -d "$dev" || true + losetup -d "$dev" || true +} + +get_fsdev +mount -v -r "$fsdev" /mnt +trap cleanup EXIT +source_dir=/mnt/$base_dir +cp -v --no-preserve=mode -t . -- "${source_files[@]/#/$source_dir/}" -- cgit v1.2.3