aboutsummaryrefslogtreecommitdiff
path: root/contrib/kiss-chbuild
diff options
context:
space:
mode:
authordylan.araps@gmail.com <dylan.araps@gmail.com>2020-01-21 00:52:39 +0000
committerdylan.araps@gmail.com <dylan.araps@gmail.com>2020-01-21 00:52:39 +0000
commit575f00219c1d7d952ba89911676581168713b3f4 (patch)
treef482048b860090740dd043410ec4650ed360128b /contrib/kiss-chbuild
parent139f33f6884812558d2bad8fe3f5be25eba81079 (diff)
downloadcpt-575f00219c1d7d952ba89911676581168713b3f4.tar.gz
kiss-chbuild: spawn chroots on the fly
FossilOrigin-Name: 68499289a198b27f60c70d9cc5d8f42ba7a3c00abd992e2a81a5766e89b7b510
Diffstat (limited to 'contrib/kiss-chbuild')
-rwxr-xr-xcontrib/kiss-chbuild34
1 files changed, 34 insertions, 0 deletions
diff --git a/contrib/kiss-chbuild b/contrib/kiss-chbuild
new file mode 100755
index 0000000..69e0854
--- /dev/null
+++ b/contrib/kiss-chbuild
@@ -0,0 +1,34 @@
+#!/bin/sh -e
+#
+# Create/destroy temporary chroots.
+
+log() {
+ printf '\033[31;1m->\033[m %s.\n' "$@"
+}
+
+clean() {
+ log "Destroying chroot"
+ su -c "rm -rf chroot-$pid" || clean
+}
+
+pid=$$
+
+cd "${cac_dir:=$KISS_ROOT${XDG_CACHE_HOME:-$HOME/.cache}/kiss}"
+
+[ -f kiss-chroot.tar.xz ] || {
+ log "Downloading chroot tarball"
+ wget https://dl.getkiss.org/kiss-chroot.tar.xz
+}
+
+[ -d kiss-chroot ] || {
+ log "Extracting chroot"
+ tar xvf kiss-chroot.tar.xz
+}
+
+log "Creating temporary chroot"
+cp -a kiss-chroot "chroot-$pid"
+
+trap clean EXIT INT
+
+log "Entering chroot"
+su -c "kiss-chroot chroot-$pid"