aports/testing/lxc/setup-lxc-template

45 lines
836 B
Bash
Executable File

#!/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