mrrl-containers

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

commit 543676897231b54205528fb9803d51d07b1798b9
parent 7587df40594df72314a3602892052e82931fb181
Author: Jan Pobříslo <ccx@te2000.cz>
Date:   Sat, 25 Jun 2022 18:30:01 +0200

Symlink all of .nix-profile/bin/ directory to /bin
Diffstat:
Mzsh-functions/confz_containers_init | 37++++++++++++++++++++++++++++++++-----
Mzsh-functions/confz_site_containers_init | 2++
2 files changed, 34 insertions(+), 5 deletions(-)

diff --git a/zsh-functions/confz_containers_init b/zsh-functions/confz_containers_init @@ -1004,11 +1004,11 @@ confz_container_nix_base_files_check() { require fs_m filename="$vars[root]/bin" mode=0755 require fs_o filename="$vars[root]/bin" owner=$vars[uid]:$vars[gid] - require fs_l filename="$vars[root]/bin/execlineb" \ - destination="/root/.nix-profile/bin/execlineb" + # require fs_l filename="$vars[root]/bin/execlineb" \ + # destination="/root/.nix-profile/bin/execlineb" - require fs_l filename="$vars[root]/bin/zsh" \ - destination="/root/.nix-profile/bin/zsh" + # require fs_l filename="$vars[root]/bin/zsh" \ + # destination="/root/.nix-profile/bin/zsh" } confz_container_nix_image_from_release_check() { @@ -1165,6 +1165,32 @@ confz_container_nix_image_check() { # owner=$vars[uid]:$vars[gid] } +confz_container_nix_bin_linked_check() { + checkvars containers_dir image_name + + local root=$vars[containers_dir]/systems/$vars[image_name] + local profile_dir=$root/root/.nix-profile + zstat -L -H stat_info $profile_dir + # while it's a symlink + while (( $stat_info[mode] >> 12 == 10 )); do + if [[ $stat_info[link] == /* ]]; then + profile_dir=$root$stat_info[link] + else + profile_dir=${profile_dir:h}/$stat_info[link] + fi + zstat -L -H stat_info $profile_dir + done + [[ -d $profile_dir ]] || \ + die "Could not find profile directory: ${(qqq)profile_dir}" + + local b + for b in $profile_dir/bin/*; do + [[ -e $root/bin/$b:t ]] || \ + require fs_l filename="$root/bin/${b:t}" \ + destination=../root/.nix-profile/bin/$b:t + done +} + confz_container_nix_packages_installed_check() { checkvars containers_dir image_name packages svscan_dir @@ -1174,7 +1200,8 @@ confz_container_nix_packages_installed_check() { local root=$vars[containers_dir]/systems/$vars[image_name] local -A stat_info - local profile_dir=$root/nix/var/nix/profiles/per-user/root/profile + # local profile_dir=$root/nix/var/nix/profiles/per-user/root/profile + local profile_dir=$root/root/.nix-profile zstat -L -H stat_info $profile_dir # while it's a symlink while (( $stat_info[mode] >> 12 == 10 )); do diff --git a/zsh-functions/confz_site_containers_init b/zsh-functions/confz_site_containers_init @@ -78,6 +78,8 @@ confz_site_container_void_musl_check() { :containers_dir :arch :repository :image_name require container_void_packages_installed \ :containers_dir :svscan_dir :image_name :packages + require container_void_bin_linked \ + :containers_dir :image_name } confz_site_container_nix_check() {