59 lines
2.1 KiB
Bash
59 lines
2.1 KiB
Bash
|
#!/usr/bin/bash
|
||
|
# Note: execute this file from the project root directory
|
||
|
set -e
|
||
|
|
||
|
[ -z "$1" ] && (echo "$0: Missing path to iso"; exit 1)
|
||
|
[ -z "$2" ] && (echo "$0: Missing kickstart"; exit 1)
|
||
|
[ "$(id -u)" -eq 0 ] || (echo "$0 must be run as root"; exit 1)
|
||
|
|
||
|
. /usr/share/beakerlib/beakerlib.sh
|
||
|
CLI="${CLI:-./src/sbin/mkksiso}"
|
||
|
|
||
|
rlJournalStart
|
||
|
rlPhaseStartSetup "Setup a fake root image"
|
||
|
TMP_DIR=$(mktemp -d -p /var/tmp)
|
||
|
rlRun -t -c "mkdir -p $TMP_DIR/fake-root/etc"
|
||
|
rlRun -t -c "touch $TMP_DIR/fake-root/etc/passwd"
|
||
|
rlRun -t -c "tar -cvaf $TMP_DIR/root.tar.xz -C $TMP_DIR/fake-root/ ."
|
||
|
rlPhaseEnd
|
||
|
|
||
|
rlPhaseStartTest "Make a new iso with kickstart and root.tar.xz"
|
||
|
rlRun -t -c "$CLI --add $TMP_DIR/root.tar.xz $2 $1 $TMP_DIR/liveimg-boot.iso"
|
||
|
rlAssertExists "$TMP_DIR/liveimg-boot.iso"
|
||
|
rlPhaseEnd
|
||
|
|
||
|
rlPhaseStartTest "Check the new ISO"
|
||
|
ISO_DIR="$TMP_DIR/mnt-iso/"
|
||
|
rlRun -t -c "mkdir $ISO_DIR"
|
||
|
rlRun "mount $TMP_DIR/liveimg-boot.iso $ISO_DIR"
|
||
|
fail=0
|
||
|
rlLogInfo "Checking for kickstart $(basename "$2")"
|
||
|
if [ ! -e "$ISO_DIR$(basename "$2")" ]; then
|
||
|
rlLogError "The kickstart is missing from the iso"
|
||
|
fail=1
|
||
|
fi
|
||
|
for cfg in isolinux/isolinux.cfg EFI/BOOT/grub.cfg EFI/BOOT/BOOT.conf \
|
||
|
boot/grub/grub.cfg images/generic.prm; do
|
||
|
if [ -e "$ISO_DIR$cfg" ]; then
|
||
|
rlLogInfo "Checking $cfg"
|
||
|
if ! grep -q "$(basename "$2")" "$ISO_DIR$cfg"; then
|
||
|
rlLogError "$cfg is missing the kickstart"
|
||
|
fail=1
|
||
|
fi
|
||
|
fi
|
||
|
done
|
||
|
rlLogInfo "Checking for root.tar.xz on iso"
|
||
|
if [ ! -e "$TMP_DIR/root.tar.xz" ]; then
|
||
|
rlLogError "The root.tar.xz file is missing from the iso"
|
||
|
fail=1
|
||
|
fi
|
||
|
rlAssertEquals "All checks have passed" $fail 0
|
||
|
rlPhaseEnd
|
||
|
|
||
|
rlPhaseStartCleanup
|
||
|
rlRun -t -c "umount $ISO_DIR"
|
||
|
rlRun -t -c "rm -rf $TMP_DIR"
|
||
|
rlPhaseEnd
|
||
|
rlJournalEnd
|
||
|
rlJournalPrintText
|