mrrl-containers

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

commit 23ceb1a23b8ed0b7c9142a09cd7edf713d234c1a
parent 0a4e33d0450066e1d7d7683e85aec86c81fdc042
Author: Jan Pobrislo <ccx@webprojekty.cz>
Date:   Fri, 15 Jan 2021 18:43:24 +0100

Use fs_contentnl
Diffstat:
Mzsh-functions/confz_containers_init | 103+++++++++++--------------------------------------------------------------------
1 file changed, 14 insertions(+), 89 deletions(-)

diff --git a/zsh-functions/confz_containers_init b/zsh-functions/confz_containers_init @@ -50,8 +50,8 @@ confz_container_service_check() { require fs_l filename=$vars[svc_dir]/data/root \ destination=$vars[root_link] - require fs_c filename=$vars[svc_dir]/data/fstab \ - content_call="printf '%s\n' ${(Q)vars[fstab]}" + require fs_contentnl filename=$vars[svc_dir]/data/fstab \ + content=$vars[fstab] require fs_m filename=$vars[svc_dir]/data/fstab mode=644 require fs_l filename=$vars[svc_dir]/run \ @@ -142,10 +142,10 @@ confz_container_service_generic_check() { root_link=$container_user_dir/root \ fstab=${(F)fstab} \?down require fs_d filename=$svc_dir/env - require fs_c filename=$svc_dir/env/CONTAINER_USER \ - content_call="printf '%s\n' "${(q)vars[user]} - require fs_c filename=$svc_dir/env/CONTAINER_NAME \ - content_call="printf '%s\n' "${(q)vars[image_name]} + require fs_contentnl filename=$svc_dir/env/CONTAINER_USER \ + content=$vars[user] + require fs_contentnl filename=$svc_dir/env/CONTAINER_NAME \ + content=$vars[image_name] } confz_container_service_xsession_check() { @@ -192,10 +192,10 @@ confz_container_service_xsession_check() { root_link=$container_user_dir/root \ fstab=${(F)fstab} \?down require fs_d filename=$svc_dir/env - require fs_c filename=$svc_dir/env/CONTAINER_USER \ - content_call="printf '%s\n' "${(q)vars[user]} - require fs_c filename=$svc_dir/env/CONTAINER_NAME \ - content_call="printf '%s\n' "${(q)HOST} + require fs_contentnl filename=$svc_dir/env/CONTAINER_USER \ + content=$vars[user] + require fs_contentnl filename=$svc_dir/env/CONTAINER_NAME \ + content=$HOST } # --- old @@ -224,10 +224,10 @@ confz_container_alpine_configured_check() { # repos=( $=vars[repositories] ) require fs_d flags=p filename=$R/etc/apk - require fs_c flags= filename=$R/etc/apk/repositories \ - content_call="printf '%s\n' "$vars[repositories] - require fs_c flags= filename=$R/etc/apk/arch \ - content_call="printf '%s\n' "$vars[arch] + require fs_contentnl filename=$R/etc/apk/repositories \ + content=$vars[repositories] + require fs_contentnl filename=$R/etc/apk/arch \ + content=$vars[arch] } confz_container_alpine_base_check() { @@ -262,78 +262,3 @@ confz_container_alpine_package_check() { ) grep -q '^'$vars[package]'$' $vars[container_root]/etc/apk/world } - -containers_fstab_gen(){ - printf '%\n' \ - "overlay $2/union overlay nosuid,nodev,lowerdir=$1,upperdir=$2/changes,workdir=$2/work 0 0" \ - "run_tmpfs $2/union/run tmpfs rw,nosuid,nodev,mode=755,uid=1000 0 0" -} - -confz_container_user_setup_check() { - checkvars container_name containers_dir user - defvar container_root $vars[containers_dir]/$vars[container_name] - defvar nameserver 127.0.0.1 - - local D=$vars[containers_dir]/user/$vars[user]/$vars[container_name] - local S=$vars[containers_dir]/service/$vars[container_name] - local uid=$(awk </etc/passwd -F: -v USER=ccx '$1 == USER {print $3}') - - [[ "$uid" =~ '[0-9]+' ]] || die "Could not get uid for ${(qqq)uid}" - - require fs_d flags= filename=$vars[containers_dir]/user - require fs_d flags= filename=$vars[containers_dir]/user/$vars[user] - require fs_d flags= filename=$D - require fs_d flags= filename=$D/changes - require fs_d flags= filename=$D/union - require fs_d flags= filename=$D/work - require fs_c flags= filename=$D/fstab \ - content_call="containers_fstab_gen ${(qqq)vars[container_root]} ${(qqq)D}" - require fs_d flags= filename=$D/changes/dev - require fs_d flags= filename=$D/changes/dev/shm - require fs_d flags= filename=$D/changes/dev/pts - require fs_d flags= filename=$D/changes/etc - # TODO: $U/changes/etc/passwd - require fs_c flags= filename=$D/changes/etc/resolv.conf \ - content_call="printf '%\n' $vars[nameserver]" - require fs_d flags= filename=$D/changes/home - require fs_d flags= filename=$D/changes/home/$vars[user] - require fs_o owner=$uid filename=$D/changes/home/$vars[user] - - require fs_d flags= filename=$vars[containers_dir]/home - require fs_d flags= filename=$vars[containers_dir]/home/$vars[user] - require fs_l flags= \ - filename=$vars[containers_dir]/home/$vars[user]/$vars[container_name] \ - destination=../../user/$vars[user]/$vars[container_name]/union/home/$vars[user] - - require fs_d flags= filename=$vars[containers_dir]/service - -#$S d o0:0 m755 - require fs_d flags= filename=$S -#$S/event d o0:100 m3730 - require fs_d flags= filename=$S/event -#$S/clone-newpid cN o0:0 m644 - require fs_c flags= filename=$S/clone-newpid \ - content_call=true - -#$S/down cN o0:0 m644 - require fs_c flags= filename=$S/down \ - content_call=true - -#$S/run o0:0 m755 - require fs_c flags= filename=$S/run \ - content_call="container_svc_run $uid:100 ${(q)D}" - -#$S/finish o0:0 m755 - require fs_c flags= filename=$S/finish \ - content_call="container_svc_finish ${(q)D}" - -#$S/supervise d o0:0 m755 - require fs_d flags= filename=$S/supervise -#$S/supervise/control p o1000:0 m600 -#$S/supervise/death_tally cN o0:0 m644 -#$S/supervise/lock cN o1000:0m644 -#$S/supervise/status B QAAAAF6FoQIIEY80QAAAAF6FoQIIEY80AAAAAAAAAAAAABQ= -#o0:0 m644 - - -}