mrrl-containers

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

commit 3ad0358391c793b607368eaf47efdaf9e55d7afb
parent 6b5f24598c42772f173ae48c6763215bda4b99f9
Author: Jan Pobříslo <ccx@te2000.cz>
Date:   Thu, 16 Dec 2021 18:54:36 +0000

Install packages into Void.
Diffstat:
Mzsh-functions/confz_containers_init | 24++++++++++++++++++++++++
Mzsh-functions/confz_site_containers_init | 45+++++++++++++++++++++++++++++++++++++--------
2 files changed, 61 insertions(+), 8 deletions(-)

diff --git a/zsh-functions/confz_containers_init b/zsh-functions/confz_containers_init @@ -827,3 +827,27 @@ confz_container_void_image_check() { require container_void_xbps :arch :mirror :repository \ :root user=container-$vars[image_name] } + +confz_container_void_packages_installed_check() { + checkvars containers_dir image_name packages svscan_dir + + require container_service_sysroot :containers_dir :svscan_dir \ + :image_name + + local root=$vars[containers_dir]/systems/$vars[image_name] + local -a missing + local pkg + + for pkg in $=vars[packages]; do + [[ -f $root/var/db/xbps/.${pkg}-files.plist ]] || missing+=( $pkg ) + done + + do_command=( + $commands[cd] $vars[svscan_dir]/container.$vars[image_name].sysroot + container_sysroot_run + /usr/sbin/xbps-install --sync -- $missing + ) + + (( $#missing == 0 )) +} + diff --git a/zsh-functions/confz_site_containers_init b/zsh-functions/confz_site_containers_init @@ -41,9 +41,30 @@ confz_site_container_services_check() { image_name=alpine-dev } +confz_site_container_alpine_check() { + checkvars containers_dir svscan_dir image_name packages + defvar arch x86_64 + + require container_alpine_image \ + :containers_dir :arch :image_name + require container_alpine_packages_installed \ + :containers_dir :svscan_dir :image_name :packages +} + +confz_site_container_void_musl_check() { + checkvars containers_dir svscan_dir image_name packages + defvar arch x86_64-musl + defvar repository=current/musl + + require container_void_image \ + :containers_dir :arch :repository :image_name + require container_void_packages_installed \ + :containers_dir :svscan_dir :image_name :packages +} + confz_site_container_images_check() { - defvar containers_dir /mnt/volumes/containers - defvar svscan_dir /run/service + checkvars containers_dir svscan_dir + local -a alpine_core=( # abduco s6 @@ -53,19 +74,27 @@ confz_site_container_images_check() { # rxvt-unicode-terminfo zsh ) - require container_alpine_image :containers_dir arch=x86_64 \ - image_name=alpine-sndio - require container_alpine_packages_installed :containers_dir :svscan_dir \ + require site_container_alpine :containers_dir :svscan_dir \ image_name=alpine-sndio packages="$alpine_core" - require container_void_image :containers_dir arch=x86_64-musl \ - repository=current/musl image_name=void-browsers + + local -a void_core=( + abduco + s6 + s6-{rc,linux-utils,portable-utils} + execline + ncurses-base + rxvt-unicode-terminfo + zsh + ) + require site_container_void_musl :containers_dir :svscan_dir \ + image_name=void-browsers packages="$void_core" } confz_site_containers_check() { defvar containers_dir /mnt/volumes/containers defvar svscan_dir /run/service require site_container_services :containers_dir :svscan_dir - require site_container_images :containers_dir + require site_container_images :containers_dir :svscan_dir } confz_container_sysroot_rundir_check() {