qubes-linux-template-builder/scripts_debian/wheezy+whonix/00_prepare_pre.sh
Jason Mehring f597ff760f Added ability to be able to relocate TEMPLATE_FLAVORS to any directory via configuration file
Added ability to specify more than one TEMPLATE_FLAVOR (Primary plus others)
Added ability for all TEMPLATE_FLAVORS and others to be able to hook into scripts (pre / post)
Addeed tests for above functionality
With these changes TEMPLATE_FLAVORS can be self contained and not polute code space
2014-10-21 09:12:05 -04:00

74 lines
2.6 KiB
Bash
Executable File

#!/bin/bash -x
# vim: set ts=4 sw=4 sts=4 et :
################################################################################
# Allows a pre-built image to be used (if it exists) for installing
# Whonix. This option is useful only for debugging Whonix installations
#
# To use, first create a regualr wheezy template and manually copy the prepared
# image to debian-7-x64-prepard.img
#
# Example:
# cp ~/qubes-builder/qubes-src/linux-template-builder/prepared_images/debian-7-x64.img ~/qubes-builder/qubes-src/linux-template-builder/prepared_images/debian-7-x64-whonix-gateway-prepard.img
################################################################################
# ------------------------------------------------------------------------------
# Return if SNAPSHOT is not "1"
# ------------------------------------------------------------------------------
# This script is only used if SNAPSHOT is set
if [ ! "$SNAPSHOT" == "1" ]; then
exit 0
fi
# ------------------------------------------------------------------------------
# Source external scripts
# ------------------------------------------------------------------------------
. $SCRIPTSDIR/vars.sh
. ./umount_kill.sh >/dev/null
# ------------------------------------------------------------------------------
# Configurations
# ------------------------------------------------------------------------------
if [ "$VERBOSE" -ge 2 -o "$DEBUG" == "1" ]; then
set -x
else
set -e
fi
INSTALLDIR="$(readlink -m mnt)"
# ------------------------------------------------------------------------------
# Use a snapshot of the debootstraped debian image to install Whonix (for DEBUGGING)
# ------------------------------------------------------------------------------
manage_snapshot() {
umount_kill "$INSTALLDIR" || :
mount -o loop "$IMG" "$INSTALLDIR" || exit 1
# Remove old snapshots if whonix completed
if [ -f "$INSTALLDIR/tmp/.prepared_whonix" ]; then
warn "Removing stale snapshots"
umount_kill "$INSTALLDIR" || :
rm -rf "$debootstrap_snapshot"
rm -rf "$updated_snapshot"
return
fi
warn "Copying $1 to $IMG"
mount -o loop "$1" "$INSTALLDIR" || exit 1
rm -f "$INSTALLDIR/tmp/.prepared_groups"
umount_kill "$INSTALLDIR" || :
cp -f "$1" "$IMG"
}
splitPath "$IMG" path_parts
debootstrap_snapshot="${path_parts[dir]}${path_parts[base]}-debootstrap${path_parts[dotext]}"
updated_snapshot="${path_parts[dir]}${path_parts[base]}-updated${path_parts[dotext]}"
if [ -f "$updated_snapshot" ]; then
manage_snapshot "$updated_snapshot"
elif [ -f "$debootstrap_snapshot" ]; then
manage_snapshot "$debootstrap_snapshot"
fi