mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-10-14 17:01:32 +02:00
45 lines
836 B
Bash
Executable File
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
|
|
|