summaryrefslogtreecommitdiff
path: root/build-os
diff options
context:
space:
mode:
Diffstat (limited to 'build-os')
-rwxr-xr-xbuild-os50
1 files changed, 50 insertions, 0 deletions
diff --git a/build-os b/build-os
new file mode 100755
index 0000000..17f41bb
--- /dev/null
+++ b/build-os
@@ -0,0 +1,50 @@
+#!/bin/bash -xe
+
+set -o pipefail
+
+. config
+. sh-lib
+
+version=$( date +%Y%m%d.%H%M%S )
+
+# Check for dependencies:
+package_deps debootstrap
+
+function unmount_pseudo_filesystems(){
+ set +e
+ for dir in dev sys proc; do umount -v "$root"/"$dir"; done
+ set -e
+}
+
+function on_exit(){
+ set +e
+ unmount_pseudo_filesystems
+}
+trap on_exit EXIT
+
+root="${roots:?}"/"$version"
+
+mkdir -p "$root"
+
+# bootstrap the OS
+
+debootstrap "$codename" "$root"
+
+for dir in /proc /sys /dev; do
+ mount --bind "$dir" "$root"/"$dir"
+done
+
+export DEBIAN_FRONTEND=noninteractive
+export version
+export root
+export osname
+export osversion
+export osdesc
+export branch
+export remote
+
+run-parts --exit-on-error -- hooks/build-os
+
+unmount_pseudo_filesystems
+
+run-parts --exit-on-error -- hooks/build-os-post