diff options
Diffstat (limited to 'system/gettys-openrc')
-rw-r--r-- | system/gettys-openrc/APKBUILD | 13 | ||||
-rw-r--r-- | system/gettys-openrc/gettys.initd | 40 |
2 files changed, 38 insertions, 15 deletions
diff --git a/system/gettys-openrc/APKBUILD b/system/gettys-openrc/APKBUILD index 31a646011..bacb96d11 100644 --- a/system/gettys-openrc/APKBUILD +++ b/system/gettys-openrc/APKBUILD @@ -1,23 +1,24 @@ # Contributor: Laurent Bercot <ska-adelie@skarnet.org> # Maintainer: Laurent Bercot <ska-adelie@skarnet.org> pkgname=gettys-openrc -pkgver=0.0.1.0 -pkgrel=3 +pkgver=0.0.2.0 +pkgrel=0 pkgdesc="Dynamic getty services" url="https://adelielinux.org/" arch="noarch" options="!check" # No test suite. license="NCSA" -depends="sysvinit execline" +depends="execline s6" source="gettys.confd gettys.initd" package() { - mkdir -p "$pkgdir"/etc/conf.d "$pkgdir"/etc/init.d "$pkgdir"/etc/runlevels/sysinit + mkdir -p "$pkgdir"/etc/conf.d "$pkgdir"/etc/init.d "$pkgdir"/etc/runlevels/default "$pkgdir"/etc/runlevels/nonetwork cp -f "$srcdir"/gettys.confd "$pkgdir"/etc/conf.d/gettys cp -f "$srcdir"/gettys.initd "$pkgdir"/etc/init.d/gettys chmod 0755 "$pkgdir"/etc/init.d/gettys - ln -sf ../../init.d/gettys "$pkgdir"/etc/runlevels/sysinit + ln -sf ../../init.d/gettys "$pkgdir"/etc/runlevels/default/ + ln -sf ../../init.d/gettys "$pkgdir"/etc/runlevels/nonetwork/ } sha512sums="50039958291cd546c51ce5a30d319f5c5cf7d310fb3cd9f7ad1632fa4bc55775cdac740f76886ff5869a2cfa3f345e760672cebf7727c7ca2514358bcc17e531 gettys.confd -3b4c212bba04c2a100b2e48cbbcdf561f77cb1f4e0565b8d6304315e8edce54ec7891dafc7e82fe9d30a8fad7249e8f0e337f71c4ad8ec50cc140a4e5130648f gettys.initd" +ad086549334cf2ff49bf95eb7d89aed8497a7533487aa4770d0fed884baab648c5da5f4db7ba8b7613d2dc5eea5d165a484ee7029fe660e97791f954aff171b3 gettys.initd" diff --git a/system/gettys-openrc/gettys.initd b/system/gettys-openrc/gettys.initd index cf74b0e8a..5181d9af2 100644 --- a/system/gettys-openrc/gettys.initd +++ b/system/gettys-openrc/gettys.initd @@ -14,25 +14,47 @@ makeservice() { if test -z "$baud" ; then baud=38400 fi - mkdir -p -m 0755 "/run/early-services/getty-$tty" + mkdir -p -m 0755 "/var/lib/s6/services/getty-$tty" { echo '#!/bin/execlineb -P' echo echo "/sbin/agetty $options -- $baud $tty linux" - } > "/run/early-services/getty-$tty/run" - chmod 0755 "/run/early-services/getty-$tty/run" + } > "/var/lib/s6/services/getty-$tty/run" + chmod 0755 "/var/lib/s6/services/getty-$tty/run" } -start() -{ +nomatchname() { + for j in $GETTYS ; do + if test "$j" = "$1" ; then + return 1 + fi + done + return 0 +} + +start() { set -e - mkdir -m 0755 -p /run/early-services + ebegin "Applying getty configuration" . /etc/conf.d/gettys + + todel="" + for i in `ls -1 /var/lib/s6/services | grep ^getty-` ; do + if nomatchname "${i##getty-}" ; then + rm -f "/run/service/$i" + todel="$todel $i" + fi + done + for i in $GETTYS ; do if test -c /dev/"$i" ; then - ebegin "Creating getty service for $i" - makeservice "$i" - eend $? + makeservice "$i" + ln -nsf "/var/lib/s6/services/getty-$i" "/run/service/getty-$i" fi done + + s6-svscanctl -an /run/service + if test -n "$todel" ; then + ( sleep 1 && rm -rf $todel ) & + fi + eend $? } |