add s6-rc-up-tree: start reverse deps of controlled service
When s6-rc stops a service, it also stops everything that depends on it. but when it starts a service it starts only that service, so we have to go through the other services depending on it and figure out if they should be started too.
This commit is contained in:
@@ -8,17 +8,21 @@
|
||||
, fennel
|
||||
, stdenv
|
||||
, fennelrepl
|
||||
, s6-rc-up-tree
|
||||
, makeWrapper
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
name = "uevent-watch";
|
||||
src = ./.;
|
||||
nativeBuildInputs = [ fennelrepl ];
|
||||
nativeBuildInputs = [ fennelrepl makeWrapper ];
|
||||
propagatedBuildInputs = [ s6-rc-up-tree ];
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -p ${writeFennel "uevent-watch" {
|
||||
packages = [fennel anoia nellie lualinux];
|
||||
mainFunction = "run";
|
||||
} ./watch.fnl} $out/bin/uevent-watch
|
||||
wrapProgram $out/bin/uevent-watch --prefix PATH : "${s6-rc-up-tree}/bin"
|
||||
'';
|
||||
checkPhase = ''
|
||||
fennelrepl ./test.fnl
|
||||
|
@@ -18,7 +18,7 @@
|
||||
|
||||
(fn start-service [devname linkname service]
|
||||
(match (if linkname (symlink (.. "/dev/" devname) linkname) true)
|
||||
ok (pcall system (%% "s6-rc -b -u change %q" service))
|
||||
ok (pcall system (%% "s6-rc-up-tree %q" service))
|
||||
(nil err) false))
|
||||
|
||||
(fn stop-service [linkname service]
|
||||
|
Reference in New Issue
Block a user