#!/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