diff --git a/mkiso b/mkiso index 7d83d2b..9c4684e 100644 --- a/mkiso +++ b/mkiso @@ -4,6 +4,9 @@ tmp=$PWD/tmp aports=$PWD/../aports target=alpine-test.iso +initramfs=test.gz +modloop=modloop.cmg + unapk() { local dest="$1" shift @@ -14,6 +17,11 @@ unapk() { rm -f "$dest/.PKGINFO" } +link_or_copy() { + ln -f "$1" "$2" 2>/dev/null || cp "$1" "$2" +} + + rm -r $tmp mkdir -p $tmp/apks $tmp/isolinux cp /usr/share/syslinux/isolinux.* $tmp/isolinux @@ -32,13 +40,20 @@ EOF unapk $tmp $aports/core/linux-grsec/linux-grsec-[0-9]*.apk -sh mkinitram -sh mkmodloop +# only build initram if its missing or script is newer than target +if [ ! -f "$initramfs" ] || [ mkinitram -nt "$initramfs" ]; then + sh mkinitram +fi + +if [ ! -f "$modloop" ] || [ mkmodloop -nt "$modloop" ]; then + sh mkmodloop +fi mkdir -p $tmp/boot/ -cp test.gz $tmp/boot/ -cp modloop.cmg $tmp/boot/ +link_or_copy test.gz $tmp/boot/ +link_or_copy modloop.cmg $tmp/boot/ +echo "==> Creating ISO image" genisoimage -o $target -l -J -R \ -b isolinux/isolinux.bin \ -c isolinux/boot.cat \