[PATCH] autopkgtest-build-lxc: accept a customization script
Antonio Terceiro
terceiro at debian.org
Tue Aug 2 21:30:35 UTC 2016
---
tools/autopkgtest-build-lxc | 15 ++++++++++++++-
tools/autopkgtest-build-lxc.1 | 5 +++++
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/tools/autopkgtest-build-lxc b/tools/autopkgtest-build-lxc
index 7a8e637..e1a65e1 100755
--- a/tools/autopkgtest-build-lxc
+++ b/tools/autopkgtest-build-lxc
@@ -27,7 +27,7 @@ set -e
DISTRO="$1"
RELEASE="$2"
if [ -z "$1" ] || [ -z "$2" ]; then
- echo "Usage: $0 debian|ubuntu <release> [arch]" >&2
+ echo "Usage: $0 debian|ubuntu <release> [arch] [script]" >&2
exit 1
fi
@@ -48,6 +48,12 @@ else
NAME="autopkgtest-${RELEASE}${ARCH:+-$ARCH}"
fi
+SCRIPT=${4:-}
+if [ -n "$SCRIPT" -a ! -r "$SCRIPT" ]; then
+ echo "ERROR: can't read customization script $SCRIPT" >&2
+ exit 1
+fi
+
# fall back for older LXC option name
LXCDIR=`lxc-config lxc.lxcpath` || LXCDIR=`lxc-config lxcpath` || LXCDIR=/var/lib/lxc
@@ -130,6 +136,13 @@ setup() {
break
fi
done
+
+ # run customize script
+ if [ -n "$SCRIPT" ]; then
+ echo "Running customization script $SCRIPT..."
+ cat "$SCRIPT" | lxc-attach --name=$1 env MIRROR=${MIRROR:-} sh
+ fi
+
lxc-stop --name=$1
}
diff --git a/tools/autopkgtest-build-lxc.1 b/tools/autopkgtest-build-lxc.1
index 24c2d3d..8a1ade1 100644
--- a/tools/autopkgtest-build-lxc.1
+++ b/tools/autopkgtest-build-lxc.1
@@ -6,6 +6,7 @@ autopkgtest-build-lxc \- Create or update autopkgtest container for autopkgtest-
.B autopkgtest-build-lxc
.I distribution release
.RI [ architecture ]
+.RI [ script ]
.SH DESCRIPTION
.B autopkgtest-build-lxc
@@ -29,6 +30,10 @@ apt sources, and runs
It defaults to the native architecture, but you can specify a different one as
third parameter.
+The path to a script to be executed inside the container to customize the
+container can be passed as the fourth parameter. The script must be a POSIX
+shell script, and should not depend on bash-specific features.
+
If the container already exists, it updates it as unintrusively as possible by
first creating a new temporary container \fBautopkgtest-\fIrelease\fB.new\fR, and then
rsyncing its root file system back to the existing \fBautopkgtest-\fIrelease\fR. Note
--
2.8.1
More information about the autopkgtest-devel
mailing list