1.X revamp and modularisation for distribution
This commit is contained in:
parent
31cc97f33c
commit
b1f162f67c
|
@ -1,22 +1,15 @@
|
|||
# Contributor: Alex Denes <caskd@redxen.eu>
|
||||
# Maintainer: Alex Denes <caskd@redxen.eu>
|
||||
pkgname=nnd-s6-services
|
||||
pkgver=0.48
|
||||
pkgver=1.4
|
||||
pkgrel=0
|
||||
pkgdesc="Base services for s6"
|
||||
url="none"
|
||||
arch="noarch"
|
||||
license="MIT"
|
||||
depends="s6-rc s6-portable-utils s6-linux-utils"
|
||||
subpackages="
|
||||
$pkgname-core:_bundle
|
||||
$pkgname-net:_bundle
|
||||
$pkgname-desktop:_bundle
|
||||
$pkgname-libvirt:_bundle
|
||||
$pkgname-virtual:_bundle
|
||||
$pkgname-tunnel:_bundle
|
||||
"
|
||||
builddir="$srcdir/"
|
||||
_distpfx="etc/s6/dist"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
|
@ -26,21 +19,30 @@ prepare() {
|
|||
}
|
||||
|
||||
package() {
|
||||
mkdir -p "$pkgdir"/etc/s6/sv
|
||||
mv "$builddir"/rc "$pkgdir"/etc/s6/rc
|
||||
mv "$builddir"/env "$pkgdir"/etc/s6/env
|
||||
# Distributed bundles
|
||||
mkdir -p "$pkgdir/$_distpfx"
|
||||
mv "$builddir"/rc "$pkgdir/$_distpfx"/rc
|
||||
mv "$builddir"/env "$pkgdir/$_distpfx"/env
|
||||
|
||||
# Manager
|
||||
install -Dm755 "$builddir"/manage.sh "$pkgdir"/usr/bin/nnd-s6
|
||||
mkdir -p "$pkgdir"/etc/s6/rc/custom # User scripts, no distributed bundles
|
||||
mkdir -p "$pkgdir"/etc/s6/rc/custom/default/contents.d
|
||||
echo bundle > "$pkgdir"/etc/s6/rc/custom/default/type
|
||||
|
||||
# Defaults
|
||||
mkdir -p "$pkgdir"/etc/s6/sv
|
||||
|
||||
mkdir -p "$pkgdir"/etc/s6/env
|
||||
|
||||
mkdir -p "$pkgdir"/etc/s6/rc
|
||||
mkdir -p "$pkgdir"/etc/s6/rc/default/contents.d
|
||||
echo bundle > "$pkgdir"/etc/s6/rc/default/type
|
||||
}
|
||||
|
||||
check() {
|
||||
s6-rc-compile "$builddir"/compiled "$builddir"/rc/*
|
||||
s6-rc-compile "$builddir"/compiled "$builddir"/rc
|
||||
}
|
||||
|
||||
_bundle() {
|
||||
local _BNAME="${subpkgname##$pkgname-}"
|
||||
[ -d "$pkgdir/etc/s6/env/$_BNAME" ] && amove "etc/s6/env/$_BNAME"
|
||||
amove "etc/s6/rc/$_BNAME"
|
||||
[ -d "$pkgdir/$_distpfx/env/$_BNAME" ] && amove "$_distpfx/env/$_BNAME"
|
||||
amove "$_distpfx/rc/$_BNAME"
|
||||
}
|
||||
|
|
|
@ -13,7 +13,9 @@ alt_ab() {
|
|||
}
|
||||
|
||||
: ${S6_PATH:='/etc/s6'}
|
||||
: ${S6_DIST_PATH:="$S6_PATH/dist"}
|
||||
: ${S6_RC_PATH:="$S6_PATH/rc"}
|
||||
: ${S6_ENV_PATH:="$S6_PATH/env"}
|
||||
: ${S6_SV_PATH:="$S6_PATH/sv"}
|
||||
|
||||
# A/B mode, always keep last copy
|
||||
|
@ -32,7 +34,7 @@ generate() {
|
|||
if [ -d "$S6_SV_PATH/current.$DB_FRESH_NAC" ]; then
|
||||
rm -rf "$S6_SV_PATH/current.$DB_FRESH_NAC" || ERR="$?" error "Failed to remove inactive database path"
|
||||
fi
|
||||
s6-rc-compile "$S6_SV_PATH/current.$DB_FRESH_NAC" "$S6_RC_PATH"/* || ERR="$?" error "Failed to compile current s6 database"
|
||||
s6-rc-compile "$S6_SV_PATH/current.$DB_FRESH_NAC" "$S6_RC_PATH" || ERR="$?" error "Failed to compile current s6 database"
|
||||
}
|
||||
|
||||
update() {
|
||||
|
@ -47,10 +49,27 @@ swap() {
|
|||
fi
|
||||
}
|
||||
|
||||
dist() {
|
||||
SDIR="$S6_DIST_PATH/rc" DPATH="$S6_RC_PATH" distdefs
|
||||
SDIR="$S6_DIST_PATH/env" DPATH="$S6_ENV_PATH" distdefs
|
||||
}
|
||||
|
||||
distdefs() {
|
||||
[ -z "$SDIR" ] && error "SDIR not defined"
|
||||
[ -z "$DPATH" ] && error "DPATH not defined"
|
||||
for cdir in "$SDIR"/*; do
|
||||
local srv="${cdir##*/}"
|
||||
local dsv="$DPATH/$srv"
|
||||
if [ ! -d "$dsv" ]; then
|
||||
ln -sv "$cdir" "$dsv" || ERR="$?" error "Failed to create reference"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
for act in $@; do
|
||||
cstate
|
||||
case "$act" in
|
||||
generate|update|swap) eval "$act";;
|
||||
generate|update|swap|dist) eval "$act" || return;;
|
||||
*) error "Invalid action $act";;
|
||||
esac
|
||||
done
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
localhost
|
|
@ -1,17 +0,0 @@
|
|||
#!/bin/execlineb -P
|
||||
s6-envdir -i /etc/s6/env/path
|
||||
importas -i PATH PATH
|
||||
s6-envdir -i /etc/s6/env/core/mount.run
|
||||
importas -i OPTS OPTS
|
||||
emptyenv
|
||||
|
||||
export PATH $PATH
|
||||
define DEST /run
|
||||
define FSTYPE tmpfs
|
||||
|
||||
fdclose 1
|
||||
fdclose 2
|
||||
|
||||
foreground {
|
||||
mkdir -p $DEST
|
||||
} mount -t $FSTYPE -o $OPTS run $DEST
|
|
@ -1,17 +0,0 @@
|
|||
#!/bin/execlineb -P
|
||||
s6-envdir -i /etc/s6/env/path
|
||||
importas -i PATH PATH
|
||||
s6-envdir -i /etc/s6/env/core/mount.sys-firmware-efi-efivars
|
||||
importas -i OPTS OPTS
|
||||
emptyenv
|
||||
|
||||
export PATH $PATH
|
||||
define DEST /sys/firmware/efi/efivars
|
||||
define FSTYPE efivarfs
|
||||
|
||||
fdclose 1
|
||||
fdclose 2
|
||||
|
||||
foreground {
|
||||
mkdir -p $DEST
|
||||
} mount -t $FSTYPE -o $OPTS securityfs $DEST
|
|
@ -1,17 +0,0 @@
|
|||
#!/bin/execlineb -P
|
||||
s6-envdir -i /etc/s6/env/path
|
||||
importas -i PATH PATH
|
||||
s6-envdir -i /etc/s6/env/core/mount.sys-fs-pstore
|
||||
importas -i OPTS OPTS
|
||||
emptyenv
|
||||
|
||||
export PATH $PATH
|
||||
define DEST /sys/fs/pstore
|
||||
define FSTYPE pstore
|
||||
|
||||
fdclose 1
|
||||
fdclose 2
|
||||
|
||||
foreground {
|
||||
mkdir -p $DEST
|
||||
} mount -t $FSTYPE -o $OPTS securityfs $DEST
|
|
@ -1,17 +0,0 @@
|
|||
#!/bin/execlineb -P
|
||||
s6-envdir -i /etc/s6/env/path
|
||||
importas -i PATH PATH
|
||||
s6-envdir -i /etc/s6/env/core/mount.tmp
|
||||
importas -i OPTS OPTS
|
||||
emptyenv
|
||||
|
||||
export PATH $PATH
|
||||
define DEST /tmp
|
||||
define FSTYPE tmpfs
|
||||
|
||||
fdclose 1
|
||||
fdclose 2
|
||||
|
||||
foreground {
|
||||
mkdir -p $DEST
|
||||
} mount -t $FSTYPE -o $OPTS tmp $DEST
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue