summaryrefslogtreecommitdiff
path: root/libre/mkisolinux-parabola/mkisolinux
diff options
context:
space:
mode:
Diffstat (limited to 'libre/mkisolinux-parabola/mkisolinux')
-rwxr-xr-xlibre/mkisolinux-parabola/mkisolinux116
1 files changed, 116 insertions, 0 deletions
diff --git a/libre/mkisolinux-parabola/mkisolinux b/libre/mkisolinux-parabola/mkisolinux
new file mode 100755
index 000000000..048d925aa
--- /dev/null
+++ b/libre/mkisolinux-parabola/mkisolinux
@@ -0,0 +1,116 @@
+#! /bin/sh
+# Created by Tobias Powalowski <tpowa@archlinux.org>
+# Rebranded for Parabola by André Silva <emulatorman@parabola.nu>
+# Settings
+APPNAME=$(basename "${0}")
+CONFIG="/etc/mkisolinux.conf"
+GENIMG=""
+BURN="0"
+BLANK="0"
+TARNAME=""
+export TEMPDIR=$(mktemp -d /tmp/mkisolinux.XXXX)
+usage ()
+{
+ echo "${APPNAME}: usage"
+ echo " -g=IMAGE Generate a ISO image as IMAGE"
+ echo " -c=CONFIG Use CONFIG file. default: /etc/mkisolinux.conf"
+ echo " -B Burn the ISO image after creation"
+ echo " -b Blanking media first"
+ echo " -h This message."
+ exit 1
+}
+
+[ "$1" == "" ] && usage
+
+while [ $# -gt 0 ]; do
+ case $1 in
+ -c=*|--c=*) CONFIG="$(echo $1 | awk -F= '{print $2;}')" ;;
+ -g=*|--g=*) GENIMG="$(echo $1 | awk -F= '{print $2;}')" ;;
+ -B|--B) BURN="1" ;;
+ -b|--b) BLANK="1" ;;
+ -t=*|--t=*) TARNAME="$(echo $1 | awk -F= '{print $2;}')" ;;
+ -h|--h|?) usage ;;
+ *) usage ;;
+ esac
+ shift
+done
+
+if [ "${TARNAME}" = "" -a "${GENIMG}" = "" ]; then
+ echo "ERROR: No image name specified, please use the -g option"
+ exit 1
+fi
+
+if [ ! -f "${CONFIG}" ]; then
+ echo "config file '${CONFIG}' cannot be found, aborting..."
+ exit 1
+fi
+
+. "${CONFIG}"
+# export for mkinitcpio
+[ -n "${APPENDBOOTMESSAGE}" ] && export APPENDBOOTMESSAGE
+[ -n "${APPENDOPTIONSBOOTMESSAGE}" ] && export APPENDOPTIONSBOOTMESSAGE
+
+export RUNPROGRAM="${APPNAME}"
+export BOOTDIRNAME="boot/syslinux"
+
+[ "${BOOTMESSAGE}" = "" ] && export BOOTMESSAGE=$(mktemp /tmp/bootmessage.XXXX)
+[ "${OPTIONSBOOTMESSAGE}" = "" ] && export OPTIONSBOOTMESSAGE=$(mktemp /tmp/optionsbootmessage.XXXX)
+[ "${ISONAME}" = "" ] && export ISONAME=$(mktemp /tmp/isoname.XXXX)
+export USEKERNEL=${VERSION}
+
+# begin script
+mkdir -p ${TEMPDIR}/${BOOTDIRNAME}/
+# prepare syslinux
+install -m755 /usr/lib/syslinux/isolinux.bin ${TEMPDIR}/${BOOTDIRNAME}/isolinux.bin
+for i in /usr/lib/syslinux/*.c32; do
+ install -m644 $i ${TEMPDIR}/${BOOTDIRNAME}/$(basename $i)
+done
+install -m644 /usr/share/hwdata/pci.ids ${TEMPDIR}/${BOOTDIRNAME}/pci.ids
+# create syslinux.cfg
+echo ":: Creating syslinux.cfg ..."
+if [ "${ISOLINUXCFG}" = "" ]; then
+ [ -e ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg ] && rm ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg
+ echo "prompt ${PROMPT}" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg
+ echo "timeout ${TIMEOUT}" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg
+ echo "display boot.msg" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg
+ echo "F1 boot.msg" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg
+ echo "F2 options.msg" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg
+ echo "default parabola" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg
+ echo "label parabola" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg
+ echo "kernel /boot/vmlinuz" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg
+ echo "append initrd=/boot/initrd.img ${KERNEL_BOOT_OPTIONS}" >> ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg
+else
+ sed "s|@@PROMPT@@|${PROMPT}|g;s|@@TIMEOUT@@|${TIMEOUT}|g;s|@@KERNEL_BOOT_OPTIONS@@|${KERNEL_BOOT_OPTIONS}|g" \
+ ${ISOLINUXCFG} > ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg
+fi
+[ ! -s ${TEMPDIR}/${BOOTDIRNAME}/syslinux.cfg ] && echo "No syslinux.cfg found" && exit 1
+
+echo ":: Calling mkinitcpio CONFIG=${MKINITCPIO_CONFIG} KERNEL=${VERSION} ..."
+# generate initramdisk
+echo ":: Creating initramdisk ..."
+ mkinitcpio -c ${MKINITCPIO_CONFIG} -k ${VERSION} -g ${TEMPDIR}/boot/initrd.img
+echo ":: Using ${KERNEL} as image kernel ..."
+ install -m644 ${KERNEL} ${TEMPDIR}/boot/vmlinuz
+ install -m644 ${BOOTMESSAGE} ${TEMPDIR}/${BOOTDIRNAME}/boot.msg
+ install -m644 ${OPTIONSBOOTMESSAGE} ${TEMPDIR}/${BOOTDIRNAME}/options.msg
+ [ ! -s ${TEMPDIR}/${BOOTDIRNAME}/boot.msg ] && echo 'ERROR:no boot.msg found, aborting!' && exit 1
+ [ ! -s ${TEMPDIR}/${BOOTDIRNAME}/options.msg ] && echo 'ERROR:no options.msg found, aborting!' && exit 1
+# create image
+echo ":: Creating ISO image ..."
+ [ -e ${GENIMG} ] && rm ${GENIMG}
+ [ -s "${ISONAME}" ] && ISONAME=$(cat $ISONAME) || ISONAME="Parabola GNU/Linux-libre"
+ mkisofs -RlDJLV "${ISONAME}" -b boot/syslinux/isolinux.bin -c boot/syslinux/boot.cat \
+ -no-emul-boot -boot-load-size 4 -boot-info-table -o ${GENIMG} ${TEMPDIR}/ > /dev/null 2>&1 \
+ && echo ":: ISO Image succesfull created at ${GENIMG}"
+ # burning/blanking image
+ if [ "$BLANK" = "1" ]; then
+ echo ":: Blanking media DEVICE=${DEVICE}, BLANKMODE=${BLANKMODE}, SPEED=${SPEED} ..."
+ cdrecord dev=${DEVICE} speed=${SPEED} blank=${BLANKMODE} > /dev/null 2>&1 && echo ":: Successfull."
+ fi
+ if [ "$BURN" = "1" ]; then
+ echo ":: Burning ISO image DEVICE=${DEVICE}, SPEED=${SPEED} ..."
+ cdrecord dev=${DEVICE} speed=${SPEED} -eject ${GENIMG} > /dev/null 2>&1 && echo ":: Successfull."
+ fi
+
+# clean /tmp
+rm -r ${TEMPDIR}