1
0
Fork 0
mirror of https://github.com/LnL7/nix-darwin.git synced 2025-03-31 04:04:45 +00:00
This commit is contained in:
Ihar Hrachyshka 2025-03-29 15:35:56 +00:00 committed by GitHub
commit 1e4918c501
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 17 additions and 15 deletions

View file

@ -79,19 +79,26 @@ let
};
};
config = {
config = let
keepAlive = (config.serviceConfig.KeepAlive != false && config.serviceConfig.KeepAlive != null);
in {
command = mkIf (config.script != "") (pkgs.writeScript "${name}-start" ''
#! ${stdenv.shell}
${config.script}
'');
serviceConfig.QueueDirectories = mkIf keepAlive [ "/nix/store" ];
serviceConfig.Label = mkDefault "${cfg.labelPrefix}.${name}";
serviceConfig.ProgramArguments = mkIf (config.command != "") [
"/bin/sh"
"-c"
"/bin/wait4path /nix/store && exec ${config.command}"
];
serviceConfig.ProgramArguments = mkIf (config.command != "") (
if keepAlive then [
"${config.command}"
] else [
"/bin/sh"
"-c"
"/bin/wait4path /nix/store && exec ${config.command}"
]
);
serviceConfig.EnvironmentVariables = mkIf (env != {}) env;
};
};

View file

@ -12,8 +12,7 @@
test = ''
plist=${config.out}/Library/LaunchDaemons/org.nixos.autossh-foo.plist
test -f $plist
grep '<string>/bin/wait4path /nix/store &amp;&amp; exec /nix/store/.*/bin/autossh ' $plist
grep '<string>/bin/wait4path /nix/store &amp;&amp; exec.*-i /some/key ' $plist
grep '<string>/nix/store/.*/bin/autossh.*-i /some/key' $plist
tr -d '\n\t ' <$plist |grep '<key>KeepAlive</key><true */>'
'';
}

View file

@ -33,10 +33,8 @@ in
<service.json jq -e ".KeepAlive == true"
<service.json jq -e ".Label == \"org.nixos.lorri\""
<service.json jq -e ".ProcessType == \"Background\""
<service.json jq -e ".ProgramArguments|length == 3"
<service.json jq -e ".ProgramArguments[0] == \"/bin/sh\""
<service.json jq -e ".ProgramArguments[1] == \"-c\""
<service.json jq -e ".ProgramArguments[2] == \"/bin/wait4path /nix/store && exec ${pkgs.lorri}/bin/lorri daemon\""
<service.json jq -e ".ProgramArguments|length == 1"
<service.json jq -e ".ProgramArguments[0] == \"${pkgs.lorri}/bin/lorri daemon\""
<service.json jq -e ".RunAtLoad == true"
'';
}

View file

@ -14,9 +14,7 @@ in
test = ''
echo checking nix-daemon service in /Library/LaunchDaemons >&2
grep "<string>org.nixos.nix-daemon</string>" ${config.out}/Library/LaunchDaemons/org.nixos.nix-daemon.plist
grep "<string>/bin/wait4path" ${config.out}/Library/LaunchDaemons/org.nixos.nix-daemon.plist
grep "&amp;&amp;" ${config.out}/Library/LaunchDaemons/org.nixos.nix-daemon.plist
grep "exec ${nix}/bin/nix-daemon</string>" ${config.out}/Library/LaunchDaemons/org.nixos.nix-daemon.plist
grep "${nix}/bin/nix-daemon</string>" ${config.out}/Library/LaunchDaemons/org.nixos.nix-daemon.plist
grep "<key>KeepAlive</key>" ${config.out}/Library/LaunchDaemons/org.nixos.nix-daemon.plist
(! grep "<key>Sockets</key>" ${config.out}/Library/LaunchDaemons/org.nixos.nix-daemon.plist)