diff options
Diffstat (limited to 'testing/lxc/setup-lxc-template')
-rwxr-xr-x | testing/lxc/setup-lxc-template | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/testing/lxc/setup-lxc-template b/testing/lxc/setup-lxc-template new file mode 100755 index 0000000000..f8e9fe4a39 --- /dev/null +++ b/testing/lxc/setup-lxc-template @@ -0,0 +1,44 @@ +#!/bin/sh + +# create a lxc template +PROG=$0 + +usage() { + echo "usage: $PROG [-fhq] [-o OUTFILE] [-X repository] [packages...]" + exit $1 +} + +clean_exit() { + rm -rf "$tmpdir" + exit $1 +} + +outfile=template.tar.gz +fakeroot= +repos= +while getopts "ho:qX:" opt; do + case "$opt" in + h) usage 0;; + o) outfile="$OPTARG";; + q) quiet=-q;; + X) repos="$repos --repository $OPTARG";; + esac +done +shift $(( $OPTIND - 1 )) + +if [ "$(whoami)" != "root" ]; then + echo "Warning: you need root permissions" >&2 +fi + +tmpdir=$(mktemp -d ${TMPDIR:-/tmp}/setup-lxc-template-XXXXXX) + +apk add --root "$tmpdir" --initdb --keys-dir /etc/apk/keys -U \ + $quiet ${repos:---repositories-file /etc/apk/repositories} \ + alpine-base $@ \ + || clean_exit 1 + +tar -czf "$outfile" -C "$tmpdir" $(ls "$tmpdir") || clean_exit 1 + +[ -z "$quiet" ] && echo "Created $outfile" +clean_exit 0 + |