aboutsummaryrefslogtreecommitdiffstats
path: root/ci.d/lxc
blob: f3b4798b75039531ac9ad19ba31ce1529599f410 (plain) (blame)
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
#!/usr/bin/env sh

# $NAME must be set to the name of the container.
if [ -z "$NAME" ]; then
	echo 'Error: $NAME is empty or not set.' 1>&2
	exit 1
fi

# lxc_create dist release arch
lxc_create() {
	lxc-create -n $NAME -t download -B btrfs -- --dist $1 --release $2 --arch $3
	echo "lxc.start.auto = 1" >> /home/lxc/$NAME/config
	echo "lxc.environment = HOME=/root" >> /home/lxc/$NAME/config
	echo "lxc.prlimit.nofile = 64000" >> /home/lxc/$NAME/config
	lxc-start -n $NAME
	lxc-wait -n $NAME -s RUNNING
}

# lxc_destroy
lxc_destroy() {
	lxc-stop -n $NAME -k || true
	lxc-destroy -n $NAME || true
}

# lxc_do
lxc_do() {
	lxc-attach -n $NAME --clear-env -- "$@"
}

# lxc_restart
lxc_restart() {
	lxc-stop -n $NAME
	lxc-start -n $NAME
	lxc_wait_for_ip
	lxc-ls -f $NAME
}

# lxc_wait_for_ip
lxc_wait_for_ip() {
	until lxc-info -n $NAME -i | grep IP:
	do
		echo -n .
		sleep 1
	done
}