From 3d86948e3c7bfcb96085c819e31f9ef5925e944d Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Thu, 30 Mar 2017 14:55:57 -0400 Subject: xorriso-usb: slight reorg; no behavior should have changed --- src/xorriso-usb.sh | 120 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 73 insertions(+), 47 deletions(-) (limited to 'src') diff --git a/src/xorriso-usb.sh b/src/xorriso-usb.sh index a42764b..0adbb70 100644 --- a/src/xorriso-usb.sh +++ b/src/xorriso-usb.sh @@ -80,6 +80,74 @@ try_mount() mount -r "$1" /mnt && trap 'umount -l /mnt' EXIT } +xorriso_cmd() +{ + # input variables: + + # INPUT_DEVICE + # NEED_STDIO + # SILENT + # volid + # INPUT_DEVICE_COPIES + # REMOVE_BTRFS + # ADD_BTRFS + # vmlinuz_dir + # gpg_iso_path + # gnupghome + # efi_dir + + # $@ = btrfs filesystems + + ([ "$SHOW_CMD" ] && set -x; + ${NO_ACT:+ :} \ + xorriso \ + ${INPUT_DEVICE:+ -indev "$INPUT_DEVICE" } \ + -outdev ${NEED_STDIO:+stdio:}"$outdev" \ + -blank as_needed \ + ${SILENT:+ -report_about mishap} \ + -return_with sorry 0 \ + -volid "$volid" \ + -pathspecs on \ + \ + \ + ${INPUT_DEVICE_COPIES} \ + \ + \ + -rm_r linux -- -add linux="${vmlinuz_dir}" -- \ + ${REMOVE_BTRFS:+ -rm_r rootfs -- } \ + ${ADD_BTRFS:+ -follow link -add "$@" -- -follow default } \ + \ + \ + -rm_r "${gpg_iso_path}" -- \ + -add "${gpg_iso_path}=${gnupghome}" -- \ + \ + \ + -chown_r 0 / -- \ + -chgrp_r 0 / -- \ + -chmod_r go-rwx "${gpg_iso_path}" -- \ + \ + \ + -as mkisofs -graft-points \ + -b grub/i386-pc/eltorito.img \ + -no-emul-boot -boot-info-table \ + --embedded-boot "${efi_dir}"/embedded.img \ + --protective-msdos-label \ + grub="${efi_dir}"/grub + ) +} + +run_xorriso() +{ + xorriso_cmd "$@" || die "xorriso exited $?" + + case "$outdev" in + *~) [ -f "$outdev" ] && mv "$outdev" "${outdev%\~}" ;; + esac + + if [ "$USB" -a "$DETACH" -a $? = 0 ]; then + udisks --detach "$outdev" + fi +} . samizdat-paths.sh || exit 1 @@ -158,12 +226,12 @@ fi if [ "$INPUT_DEVICE" ]; then if [ "$INPUT_DEVICE" = /dev/md55 ]; then if mountpoint -q /cdrom; then - XORRISO_IS_DRIVING_ME_INSANE='-add /=/cdrom --' + INPUT_DEVICE_COPIES='-add /=/cdrom --' fi elif [ -d "$INPUT_DEVICE" ]; then - XORRISO_IS_DRIVING_ME_INSANE="-add /=$INPUT_DEVICE --" # TODO: escape + INPUT_DEVICE_COPIES="-add /=$INPUT_DEVICE --" # TODO: escape elif try_mount "$INPUT_DEVICE"; then - XORRISO_IS_DRIVING_ME_INSANE='-add /=/mnt --' + INPUT_DEVICE_COPIES='-add /=/mnt --' else REPLACE_INITRD= REMOVE_BTRFS= @@ -198,48 +266,6 @@ if [ "$REPLACE_INITRD" ]; then fi SILENT= +SHOW_CMD=y -(set -x -xorriso \ - ${INPUT_DEVICE:+ -indev "$INPUT_DEVICE" } \ - -outdev ${NEED_STDIO:+stdio:}"$outdev" \ - -blank as_needed \ - ${SILENT:+ -report_about mishap} \ - -return_with sorry 0 \ - -volid "$volid" \ - -pathspecs on \ - \ - \ - ${XORRISO_IS_DRIVING_ME_INSANE} \ - \ - \ - -rm_r linux -- -add linux="${vmlinuz_dir}" -- \ - ${REMOVE_BTRFS:+ -rm_r rootfs -- } \ - ${ADD_BTRFS:+ -follow link -add "$@" -- -follow default } \ - \ - \ - -rm_r "${gpg_iso_path}" -- \ - -add "${gpg_iso_path}=${gnupghome}" -- \ - \ - \ - -chown_r 0 / -- \ - -chgrp_r 0 / -- \ - -chmod_r go-rwx "${gpg_iso_path}" -- \ - \ - \ - -as mkisofs -graft-points \ - -b grub/i386-pc/eltorito.img \ - -no-emul-boot -boot-info-table \ - --embedded-boot "${efi_dir}"/embedded.img \ - --protective-msdos-label \ - grub="${efi_dir}"/grub - -) || die "xorriso exited $?" - -case "$outdev" in - *~) [ -f "$outdev" ] && mv "$outdev" "${outdev%\~}" ;; -esac - -if [ "$USB" -a "$DETACH" -a $? = 0 ]; then - udisks --detach "$outdev" -fi +run_xorriso "$@" -- cgit v1.2.3