# License: This file is licensed under the GPL v2 or any later version.
################################################################################
+set -e -o pipefail
+
# make sure we have the sbin directories in our PATH to find grml2usb ootb
PATH="${PATH}:/sbin:/usr/local/sbin:/usr/sbin"
# adjust variables if necessary through environment {{{
# path to the grml2usb script you'd like to use
- [ -n "$GRML2USB" ] || GRML2USB='grml2usb'
-# work directory for creating the filesystem
- [ -n "$TMPDIR" ] && WRKDIR="${TMPDIR}/grml2iso.tmp"
- [ -n "$WRKDIR" ] || WRKDIR='/tmp/grml2iso.tmp'
+[ -n "$GRML2USB" ] || GRML2USB='grml2usb'
+
# support mkisofs as well as genisoimage
if which xorriso >/dev/null 2>&1 ; then
MKISOFS='xorriso -as mkisofs'
# }}}
# helper stuff {{{
- set -e
-
usage() {
echo >&2 "Usage: $0 [OPTIONS] -o target.iso source1.iso [source2.iso ...]"
echo >&2 "
restrictions in the bootprocess only IPs are allowed.
Supported protocols are: http and ftp
-t Directory Directory that should be used for temporary files
- during build. Defaults to /tmp/grml2iso.tmp if unset.
+ during build, instead of using a temporary directory
+ created by mktemp(1).
Examples:
- $0 -s http://192.168.23.42:8000/grml/ -o small.iso grml64-small_2018.12.iso
+ $0 -s http://192.168.23.42:8000/grml/ -o small.iso grml64-small_2021.07.iso
Will generate a file small.iso which tries to download the squashfs file from
http://192.168.23.42:8000/grml/ - the squashfs file is placed in the same
GRML2USB_OPTS+=(--bootoptions="fetch=$URI")
fi
- if [ -n "$WRKDIR" ] ; then
- GRML2USB_OPTS+=(--tmpdir="$WRKDIR")
- fi
-
# make sure -o is specified
[ -n "$ISOFILE" ] || usage 1
esac
# }}}
-# create necessary stuff under WRKDIR {{{
- [ -d "$WRKDIR" ] && WRKDIR_EXISTED='true' || WRKDIR_EXISTED='false'
+# ensure to properly set up working directory {{{
+ WRKDIR_EXISTED='false'
+ if [ -z "$WRKDIR" ] ; then
+ WRKDIR="$(mktemp -d)"
+ else
+ [ -d "$WRKDIR" ] && WRKDIR_EXISTED='true'
+ fi
+
+ GRML2USB_OPTS+=(--tmpdir="$WRKDIR")
+
rm -rf "$WRKDIR/cddir" "$WRKDIR/grub_tmp"
mkdir -p "$WRKDIR/cddir"
# }}}}