mrrl-containers

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

commit e9135a2919e106fb25bf9add19bf6369363dd222
parent 92d7beec42af5fb01615a924026b2d3946b3f7a3
Author: Jan Pobříslo <ccx@te2000.cz>
Date:   Thu, 23 Jun 2022 11:50:35 +0200

Some cleanups, initialize nix-signal container for user
Diffstat:
Mzsh-functions/confz_containers_init | 25++++++++++++++++---------
Mzsh-functions/confz_site_containers_init | 25++++++++++++++++++++++++-
2 files changed, 40 insertions(+), 10 deletions(-)

diff --git a/zsh-functions/confz_containers_init b/zsh-functions/confz_containers_init @@ -894,8 +894,7 @@ confz_container_void_packages_installed_check() { # --- Nix / NixOS --- confz_container_nix_image_from_release_check() { - checkvars containers_dir image_name - defvar system x86_64-linux + checkvars containers_dir image_name system defvar release 2.9.1 defvar checksum_algo sha256 defvar mirror https://releases.nixos.org/nix @@ -925,15 +924,16 @@ confz_container_nix_image_from_release_check() { ;; esac + defvar alpine_arch ${vars[system]%-*} unify url $vars[mirror]/nix-$vars[release]/nix-$vars[release]-$vars[system].tar.xz (($+vars[checksum])) || die "No stored checksum for $url" require container_nix_image :containers_dir :image_name :url \ - :checksum :checksum_algo \?hostname \?locale \?svscan_dir + :checksum :checksum_algo :alpine_arch \?hostname \?locale \?svscan_dir } -confz_container_nix_bootstrap_utils_apk_check() { +confz_container_nix_bootstrap_packages_check() { checkvars user root arch uid gid defvar keys_dir /etc/apk/keys defvar apk_executable apk @@ -966,10 +966,10 @@ confz_container_nix_bootstrap_utils_apk_check() { [[ -f $vars[root]/bin/busybox ]] } -confz_container_nix_bootstrap_utils_check() { +confz_container_nix_bootstrap_check() { checkvars root svscan_dir image_name - require container_nix_bootstrap_utils_apk :root \?arch \?uid \?gid \ + require container_nix_bootstrap_packages :root \?arch \?uid \?gid \ \?user \?keys_dir \?apk_executable \?mirror \?release \?repositories do_command=( @@ -1009,11 +1009,12 @@ confz_container_nix_image_installed_do() { } confz_container_nix_image_check() { - checkvars containers_dir image_name url checksum svscan_dir + checkvars containers_dir image_name url checksum svscan_dir alpine_arch defvar checksum_algo sha256 defvar hostname $vars[image_name] defvar locale C.UTF-8 + # TODO: actually apply hostname and locale? unify root $vars[containers_dir]/systems/$vars[image_name] unify user container-$vars[image_name] @@ -1027,8 +1028,14 @@ confz_container_nix_image_check() { require container_service_sysroot :containers_dir :svscan_dir \ :image_name - require container_nix_bootstrap_utils :user :root :uid :gid :svscan_dir \ - :image_name arch=x86_64 # TODO: infer correct arch + require container_nix_bootstrap :user :root :uid :gid :svscan_dir \ + :image_name \ + \?arch=alpine_arch \ + \?keys_dir=alpine_keys_dir \ + \?mirror=alpine_mirrors \ + \?release=alpine_release \ + \?repositories=alpine_repositories \ + \?apk_executable require container_nix_image_installed :filename :root :image_name \ :svscan_dir :uid :gid :containers_dir :user diff --git a/zsh-functions/confz_site_containers_init b/zsh-functions/confz_site_containers_init @@ -13,7 +13,7 @@ confz_site_containers_user_check() { display_number=$display image_name=alpine-xsession \ :containers_dir :svscan_dir :user done - for container in alpine-{games,browsers,ssh} void-musl-gajim; do + for container in alpine-{games,browsers,ssh} void-musl-gajim nix-signal; do bindroot=$vars[containers_dir]/user/$vars[user]/$container/root require container_service_generic \ image_name=$container \ @@ -80,6 +80,17 @@ confz_site_container_void_musl_check() { :containers_dir :svscan_dir :image_name :packages } +confz_site_container_nix_check() { + checkvars containers_dir svscan_dir image_name packages + defvar arch x86_64-linux + defvar repository current/musl + + require container_nix_image_from_release \ + :containers_dir :arch :repository :image_name :svscan_dir + require container_nix_packages_installed \ + :containers_dir :svscan_dir :image_name :packages +} + confz_site_container_images_check() { checkvars containers_dir svscan_dir @@ -148,6 +159,18 @@ confz_site_container_images_check() { ) require site_container_void_musl :containers_dir :svscan_dir \ image_name=void-browsers packages="$void_core firefox" + + local -a nix_core=( + s6 + s6-{rc,linux-utils,portable-utils} + execline + ncurses + zsh + abduco + ) + + require site_container_nix :containers_dir :svscan_dir \ + image_name=nix-signal packages="$nix_core signal-desktop" } confz_site_containers_check() {