commit c77de03d8d4f5cbb9af244c00409f5ba73324496
parent e3e75a2b8e21092ff96ba0124cd5cf226d542223
Author: Jan Pobříslo <ccx@te2000.cz>
Date: Thu, 23 Jun 2022 01:08:19 +0200
Use container_sysroot_run to run nix installation.
Diffstat:
1 file changed, 34 insertions(+), 5 deletions(-)
diff --git a/zsh-functions/confz_containers_init b/zsh-functions/confz_containers_init
@@ -933,7 +933,7 @@ confz_container_nix_image_from_release_check() {
:checksum :checksum_algo \?hostname \?locale
}
-confz_container_nix_bootstrap_utils_check() {
+confz_container_nix_bootstrap_utils_apk_check() {
checkvars user root arch uid gid
defvar keys_dir /etc/apk/keys
defvar apk_executable apk
@@ -961,9 +961,22 @@ confz_container_nix_bootstrap_utils_check() {
--root $vars[root]
--keys-dir $vars[keys_dir]
--no-scripts
- add alpine-keys busybox
+ add alpine-keys apk-tools busybox
+ )
+ [[ -f $vars[root]/sbin/apk ]]
+}
+
+confz_container_nix_bootstrap_utils_check() {
+ checkvars root svscan_dir image_name
+
+ require container_nix_bootstrap_utils_apk :root \?arch \?uid \?gid \
+ \?keys_dir \?apk_executable \?mirror \?release \?repositories
+
+ do_command=(
+ $commands[cd] $vars[svscan_dir]/container.$vars[image_name].sysroot
+ container_sysroot_run
+ /bin/apk fix
)
- [[ -f $vars[root]/bin/sh ]]
}
confz_container_nix_unpacked_check() {
@@ -978,8 +991,19 @@ confz_container_nix_unpacked_check() {
[[ -f $vars[root]/${vars[filename]%.tar.*}/install ]]
}
+confz_container_nix_image_installed_check() {
+ checkvars filename image_name svscan_dir root
+
+ do_command=(
+ $commands[cd] $vars[svscan_dir]/container.$vars[image_name].sysroot
+ container_sysroot_run
+ $vars[root]/${vars[filename]%.tar.*}/install
+ )
+ [[ -d $vars[root]/nix/store ]]
+}
+
confz_container_nix_image_check() {
- checkvars containers_dir image_name url checksum
+ checkvars containers_dir image_name url checksum svscan_dir
defvar checksum_algo sha256
defvar hostname $vars[image_name]
@@ -994,10 +1018,15 @@ confz_container_nix_image_check() {
require container_sysroot_user %uid %gid :containers_dir :image_name
require container_generic_layout :uid :gid :root
- require container_nix_bootstrap_utils :user :root :uid :gid \
+ require container_service_sysroot :containers_dir :svscan_dir \
+ :image_name
+
+ require container_nix_bootstrap_utils :user :root :uid :gid :svscan_dir \
arch=x86_64 # TODO: infer correct arch
require container_nix_unpacked :containers_dir :filename :root :user
+ require container_nix_image_installed :filename :root :image_name \
+ :svscan_dir
}
confz_container_nix_packages_installed_check() {