blob: 3edffa1aaa9db487a95004b4d90dc6b8f4e3c64b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#!/bin/sh
# create a vserver 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 "a:ho:qX:" opt; do
case "$opt" in
a) arch_opt="--arch $OPTARG";;
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-vs-template-XXXXXX)
apk add --root "$tmpdir" --initdb --keys-dir /etc/apk/keys -U $arch_opt \
$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
|