linux-live/Slax/debian/rootcopy/usr/bin/genslaxiso

60 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
CWD=$(pwd)
SOURCE=/run/initramfs/memory
TEMP=/tmp/slaxiso.$$
TARGET="$(readlink -f "$1")"
if [ "$TARGET" = "" ]; then
echo ""
echo "Generate Slax ISO image, adding specified modules"
echo "Usage: $0 target.iso [[module.sb]] [[module.sb]] ..."
exit 1
fi
if [ -e "$SOURCE/data/slax/boot/isolinux.bin" ]; then
SLAX=$SOURCE/data/slax
fi
if [ -e "$SOURCE/toram/boot/isolinux.bin" ]; then
SLAX=$SOURCE/toram
fi
if [ "$SLAX" = "" ]; then
echo "Cannot find boot/isolinux.bin in Slax data" >&2
exit 2
fi
GRAFT=\
$(
cd "$SLAX"
find . -type f | sed -r "s:^[.]/::" | egrep -v "^boot/isolinux.(bin|boot)$" | egrep -v "^changes/" | while read LINE; do
echo "slax/$LINE=$SLAX/$LINE"
done
)
# add all modules
while [ "$2" != "" ]; do
if [ ! -e "$2" ]; then
echo "File does not exist: $2"
exit 3
fi
BAS="$(basename "$2")"
MOD="$(readlink -f "$2")"
GRAFT="$GRAFT slax/modules/$BAS=$MOD"
shift
done
(
mkdir -p $TEMP/slax/{boot,modules,changes}
cp "$SLAX/boot/isolinux.bin" "$TEMP/slax/boot"
cd "$TEMP"
genisoimage -o - -quiet -v -J -R -D -A slax -V slax \
-no-emul-boot -boot-info-table -boot-load-size 4 -input-charset utf-8 \
-b slax/boot/isolinux.bin -c slax/boot/isolinux.boot \
-graft-points $GRAFT \
. \
) > "$TARGET"
rm -Rf $TEMP