commit d178e57a5e069f6b0dabfd8ef228b170fe85c08e
parent 4542278e1fc5c74d840c193aa7fd82c48a40276c
Author: Jan Pobříslo <ccx@te2000.cz>
Date: Tue, 14 Dec 2021 00:12:27 +0000
Separate check for common filesystem layout, preliminary Void support.
Diffstat:
1 file changed, 62 insertions(+), 5 deletions(-)
diff --git a/zsh-functions/confz_containers_init b/zsh-functions/confz_containers_init
@@ -1,4 +1,4 @@
-# vim: ft=zsh noet ts=4 sts=4 sw=4
+# vim: ft=zsh noet ts=4 sts=4 sw=4
# find: ‘./event’: Permission denied
@@ -434,7 +434,7 @@ confz_container_template_file_do() {
chmod $vars[mode] $vars[root]/$vars[target] || die
}
-confz_container_alpine_base_layout_check() {
+confz_container_generic_layout_check() {
checkvars root
defvar uid 0
defvar gid 0
@@ -443,6 +443,10 @@ confz_container_alpine_base_layout_check() {
require fs_m filename="$vars[root]" mode=0755
require fs_o filename="$vars[root]" owner=$vars[uid]:$vars[gid]
+ require fs_d filename="$vars[root]/.inbox"
+ require fs_m filename="$vars[root]/.inbox" mode=0755
+ require fs_o filename="$vars[root]/.inbox" owner=$vars[uid]:$vars[gid]
+
require fs_d filename="$vars[root]/dev"
require fs_m filename="$vars[root]/dev" mode=0755
require fs_o filename="$vars[root]/dev" owner=$vars[uid]:$vars[gid]
@@ -455,9 +459,29 @@ confz_container_alpine_base_layout_check() {
require fs_m filename="$vars[root]/dev/shm" mode=0755
require fs_o filename="$vars[root]/dev/shm" owner=$vars[uid]:$vars[gid]
- require fs_d filename="$vars[root]/dev/syslog"
- require fs_m filename="$vars[root]/dev/syslog" mode=0755
- require fs_o filename="$vars[root]/dev/syslog" owner=$vars[uid]:$vars[gid]
+ require fs_d filename="$vars[root]/mnt"
+ require fs_m filename="$vars[root]/mnt" mode=0755
+ require fs_o filename="$vars[root]/mnt" owner=$vars[uid]:$vars[gid]
+
+ require fs_d filename="$vars[root]/mnt/ns"
+ require fs_m filename="$vars[root]/mnt/ns" mode=0755
+ require fs_o filename="$vars[root]/mnt/ns" owner=$vars[uid]:$vars[gid]
+
+ require fs_d filename="$vars[root]/run"
+ require fs_m filename="$vars[root]/run" mode=0755
+ require fs_o filename="$vars[root]/run" owner=$vars[uid]:$vars[gid]
+
+ require fs_d filename="$vars[root]/tmp"
+ require fs_m filename="$vars[root]/tmp" mode=0755
+ require fs_o filename="$vars[root]/tmp" owner=$vars[uid]:$vars[gid]
+}
+
+confz_container_alpine_base_layout_check() {
+ checkvars root
+ defvar uid 0
+ defvar gid 0
+
+ require container_generic_layout :root :uid :gid
require fs_d filename="$vars[root]/etc"
require fs_m filename="$vars[root]/etc" mode=0755
@@ -731,3 +755,36 @@ confz_container_alpine_image_check() {
require container_alpine_apk :arch \
root=$root user=container-$vars[image_name]
}
+
+# --- Void ---
+
+confz_container_void_xbps_check() {
+ checkvars user root arch mirror
+ defvar xbps_executable xbps
+ do_command=(
+ env XBPS_ARCH=$vars[arch]
+ s6-setuidgid $vars[user]
+ $vars[xbps_executable]
+ xbps-install
+ --sync
+ --rootdir $vars[root]
+ --repository $vars[mirror]
+ # --yes
+ base-files xbps
+ )
+ [[ -f $vars[root]/usr/bin/xbps-install ]]
+}
+
+confz_container_void_image_check() {
+ checkvars containers_dir image_name arch
+ defvar mirror https://mirror.fit.cvut.cz/voidlinux/
+ #defvar hostname $vars[image_name]
+ #defvar locale C.UTF-8
+
+ local root=$vars[containers_dir]/systems/$vars[image_name]
+
+ require container_sysroot_user %uid %gid :containers_dir :image_name
+ require container_generic_layout :uid :gid root=$root
+ require container_void_xbps :arch :mirror \
+ root=$root user=container-$vars[image_name]
+}