-cleanup() { :; }
-set -eE -o pipefail
-trap 'cleanup; echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
-script_dir=$(dirname $(readlink -f "$BASH_SOURCE"))
+x="$(readlink -f "$BASH_SOURCE")"
+script_dir="${x%/*}"
+source "${script_dir}/bash-trace"
e() { echo "$*"; "$@"; }
Note, sometimes shutting down the existing demohost vm
fails. Just run again if that happens.
+-d Don't do dhcp setup for when we aren't on Ian's home network.
-r Do not boot after install is complete
--n Create new qcow2(s) for vm
+-n Create new qcow2(s) for vm. Good for testing partitioning
+ script, to ensure a blank disk.
-h|--help Print help and exit.
Note: Uses GNU getopt options parsing style
exit $1
}
+orig_args=("$@")
new_disk=false
-temp=$(getopt -l help hnr "$@") || usage 1
+temp=$(getopt -l help dnrh "$@") || usage 1
eval set -- "$temp"
while true; do
case $1 in
+ -d) dhcp_arg=-d; shift ;;
-n) new_disk=true; shift ;;
-r) reboot_arg=--noreboot; shift ;;
-h|--help) usage ;;
# Copy our script elsewhere so we can develop it
# and save it at the same time it's running
rm -rf /tmp/faifreeze
- mkdir -p /a/tmp
cp -ar /a/bin/fai /tmp/faifreeze
- exec /tmp/faifreeze/${BASH_SOURCE##*/} "$@"
+ exec /tmp/faifreeze/${BASH_SOURCE##*/} "${orig_args[@]}"
fi
cd $script_dir
[[ ${0##*/} == arch-revm ]]
}
-cleanup() { ./pxe-server; }
+cleanup() {
+ echo "doing cleanup"
+ e ./pxe-server $dhcp_arg
+ ./faiserver-disable
+}
+_errcatch_cleanup=cleanup
+
if is_arch_revm; then
- ./pxe-server demohost arch
+ e ./pxe-server $dhcp_arg demohost arch
sleep 2
# via osinfo-query os. guessing arch is closest to latest fedora.
variant=fedora22
else
- ./pxe-server demohost fai
+ e ./pxe-server $dhcp_arg demohost fai
sleep 2
# I don't think these variants actually make a diff for us, but I
# use the appropriate one when trying a new distro just in case.
disk_arg+=("--disk path=$f")
if $new_disk || [[ ! -e $f ]]; then
s rm -f $f
- e s qemu-img create -o preallocation=metadata -f qcow2 $f 20G
+ e s qemu-img create -o preallocation=metadata -f qcow2 $f 50G
fi
done
while ! timeout -s 9 10 ssh -oBatchMode=yes root@$name /bin/true; do
e sleep 5
done
-cleanup() { :; }
+unset _errcatch_cleanup
e pxe-server
if is_arch_revm; then
./arch-init-remote $name