mrrl-containers

MRRL version of container scripts
git clone https://ccx.te2000.cz/git/mrrl-containers
Log | Files | Refs

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:
Mzsh-functions/confz_containers_init | 67++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
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] +}