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:
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() {