diff options
author | Daniel Baumann <daniel@debian.org> | 2007-11-14 09:55:50 +0100 |
---|---|---|
committer | Daniel Baumann <daniel@debian.org> | 2007-11-14 09:55:50 +0100 |
commit | 94c3ca731ab2b621d2ad5826d3acf67d6325ae06 (patch) | |
tree | 99362671c4e5af013d79e3757022b52b6999c9f5 /functions | |
parent | 769618067dbfedf3c9aa19b28139d8eb413fa9a1 (diff) | |
download | vyos-live-build-94c3ca731ab2b621d2ad5826d3acf67d6325ae06.tar.gz vyos-live-build-94c3ca731ab2b621d2ad5826d3acf67d6325ae06.zip |
Moving lh_losetup into an internal function, avoiding helper failure with return value due to new trap.
Diffstat (limited to 'functions')
-rwxr-xr-x | functions/losetup.sh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/functions/losetup.sh b/functions/losetup.sh new file mode 100755 index 000000000..4ca1d5fe1 --- /dev/null +++ b/functions/losetup.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +# losetup - wrapper around losetup +# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org> +# +# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +set -e + +Losetup () +{ + DEVICE="${1}" + FILE="${2}" + PARTITION="${3:=1}" + + ${LH_ROOT_COMMAND} ${LH_LOSETUP} "${DEVICE}" "${FILE}" + FDISK_OUT="$(LH_FDISK -l -u ${DEVICE} 2>&1)" + ${LH_ROOT_COMMAND} ${LH_LOSETUP} -d "${DEVICE}" + + LOOPDEVICE="$(echo ${DEVICE}p${PARTITION})" + + if [ "${PARTITION}" = "0" ] + then + Echo_message "Mounting ${DEVICE} with offset 0" + + ${LH_ROOT_COMMAND} ${LH_LOSETUP} "${DEVICE}" "${FILE}" + else + CYLINDERS="$(echo "$FDISK_OUT" | sed -ne "s_^$LOOPDEVICE[ *]*\([0-9]*\).*_\1_p")" + OFFSET="$(expr ${CYLINDERS} '*' 512)" + + Echo_message "Mounting ${DEVICE} with offset ${OFFSET}" + + ${LH_ROOT_COMMAND} ${LH_LOSETUP} -o "${OFFSET}" "${DEVICE}" "${FILE}" + fi +} |