|
| 1 | +#!/bin/bash |
| 2 | +# Copies premium stuff to systemvm.iso |
| 3 | + |
| 4 | +#set -x |
| 5 | + |
| 6 | +TMP=${HOME}/tmp |
| 7 | +MOUNTPATH=/mnt/cloud/systemvm |
| 8 | +TMPDIR=${TMP}/cloud/systemvm |
| 9 | +ISOPATH=`dirname $0`/../../../vms/systemvm.iso |
| 10 | +STUFFPATH=`dirname $0`/../../../vms/premium-systemvm.zip |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | +clean_up() { |
| 15 | + sudo umount $MOUNTPATH |
| 16 | + rm -rf $TMPDIR |
| 17 | +} |
| 18 | + |
| 19 | +inject_into_iso() { |
| 20 | + local isofile=${ISOPATH} |
| 21 | + local backup=${isofile}.bak |
| 22 | + local tmpiso=${TMP}/$1 |
| 23 | + [ ! -f $isofile ] && echo "$(basename $0): Could not find systemvm iso patch file $isofile" && return 1 |
| 24 | + sudo mount -o loop $isofile $MOUNTPATH |
| 25 | + [ $? -ne 0 ] && echo "$(basename $0): Failed to mount original iso $isofile" && clean_up && return 1 |
| 26 | + sudo cp -b $isofile $backup |
| 27 | + [ $? -ne 0 ] && echo "$(basename $0): Failed to backup original iso $isofile" && clean_up && return 1 |
| 28 | + rm -rf $TMPDIR |
| 29 | + mkdir -p $TMPDIR |
| 30 | + [ ! -d $TMPDIR ] && echo "$(basename $0): Could not find/create temporary dir $TMPDIR" && clean_up && return 1 |
| 31 | + sudo cp -fr $MOUNTPATH/* $TMPDIR/ |
| 32 | + [ $? -ne 0 ] && echo "$(basename $0): Failed to copy from original iso $isofile" && clean_up && return 1 |
| 33 | + sudo cp -f $STUFFPATH $TMPDIR/systemvm.zip |
| 34 | + [ $? -ne 0 ] && echo "$(basename $0): Failed to copy sutff $STUFFPATH from to new iso " && clean_up && return 1 |
| 35 | + mkisofs -quiet -r -o $tmpiso $TMPDIR |
| 36 | + [ $? -ne 0 ] && echo "$(basename $0): Failed to create new iso $tmpiso from $TMPDIR" && clean_up && return 1 |
| 37 | + sudo umount $MOUNTPATH |
| 38 | + [ $? -ne 0 ] && echo "$(basename $0): Failed to unmount old iso from $MOUNTPATH" && return 1 |
| 39 | + sudo cp -f $tmpiso $isofile |
| 40 | + [ $? -ne 0 ] && echo "$(basename $0): Failed to overwrite old iso $isofile with $tmpiso" && return 1 |
| 41 | + rm -rf $TMPDIR |
| 42 | + return $? |
| 43 | +} |
| 44 | + |
| 45 | +sudo mkdir -p $MOUNTPATH |
| 46 | + |
| 47 | +[ ! -f $STUFFPATH ] && echo "$(basename $0): Could not find $STUFFPATH" && exit 3 |
| 48 | +command -v mkisofs > /dev/null || (echo "$(basename $0): mkisofs not found, please install or ensure PATH is accurate" ; exit 4) |
| 49 | + |
| 50 | +inject_into_iso systemvm.iso |
| 51 | + |
| 52 | +[ $? -ne 0 ] && exit 5 |
| 53 | + |
| 54 | +exit 0 |
0 commit comments