mirror of
https://github.com/nix-community/home-manager.git
synced 2025-11-08 19:46:05 +01:00
pueue: enable darwin configuration (#7519)
This commit enables configuring pueue for darwin. pueue already builds fine for darwin and all that was needed was a `launchd` agent.
This commit is contained in:
parent
3641df95be
commit
fe38a5e028
1 changed files with 43 additions and 21 deletions
|
|
@ -5,11 +5,10 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
|
||||||
cfg = config.services.pueue;
|
cfg = config.services.pueue;
|
||||||
yamlFormat = pkgs.formats.yaml { };
|
yamlFormat = pkgs.formats.yaml { };
|
||||||
configFile = yamlFormat.generate "pueue.yaml" ({ shared = { }; } // cfg.settings);
|
configFile = yamlFormat.generate "pueue.yaml" ({ shared = { }; } // cfg.settings);
|
||||||
|
pueuedBin = "${cfg.package}/bin/pueued";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
meta.maintainers = [ lib.maintainers.AndersonTorres ];
|
meta.maintainers = [ lib.maintainers.AndersonTorres ];
|
||||||
|
|
@ -36,28 +35,51 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable (
|
||||||
assertions = [
|
lib.mkMerge [
|
||||||
(lib.hm.assertions.assertPlatform "services.pueue" pkgs lib.platforms.linux)
|
{
|
||||||
];
|
home.packages = lib.mkIf (cfg.package != null) [ cfg.package ];
|
||||||
|
}
|
||||||
|
(lib.mkIf pkgs.stdenv.isLinux {
|
||||||
|
xdg.configFile."pueue/pueue.yml".source = configFile;
|
||||||
|
systemd.user = lib.mkIf (cfg.package != null) {
|
||||||
|
services.pueued = {
|
||||||
|
Unit = {
|
||||||
|
Description = "Pueue Daemon - CLI process scheduler and manager";
|
||||||
|
};
|
||||||
|
|
||||||
home.packages = lib.mkIf (cfg.package != null) [ cfg.package ];
|
Service = {
|
||||||
|
Restart = "on-failure";
|
||||||
|
ExecStart = "${pueuedBin} -v -c ${configFile}";
|
||||||
|
};
|
||||||
|
|
||||||
xdg.configFile."pueue/pueue.yml".source = configFile;
|
Install.WantedBy = [ "default.target" ];
|
||||||
|
};
|
||||||
systemd.user = lib.mkIf (cfg.package != null) {
|
|
||||||
services.pueued = {
|
|
||||||
Unit = {
|
|
||||||
Description = "Pueue Daemon - CLI process scheduler and manager";
|
|
||||||
};
|
};
|
||||||
|
})
|
||||||
|
(lib.mkIf pkgs.stdenv.isDarwin {
|
||||||
|
# This is the default configuration file location for pueue on
|
||||||
|
# darwin (https://github.com/Nukesor/pueue/wiki/Configuration)
|
||||||
|
home.file."Library/Application Support/pueue/pueue.yml".source = configFile;
|
||||||
|
launchd.agents.pueued = lib.mkIf (cfg.package != null) {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
Service = {
|
config = {
|
||||||
Restart = "on-failure";
|
ProgramArguments = [
|
||||||
ExecStart = "${cfg.package}/bin/pueued -v -c ${configFile}";
|
pueuedBin
|
||||||
|
"-v"
|
||||||
|
"-c"
|
||||||
|
"${configFile}"
|
||||||
|
];
|
||||||
|
KeepAlive = {
|
||||||
|
Crashed = true;
|
||||||
|
SuccessfulExit = false;
|
||||||
|
};
|
||||||
|
ProcessType = "Background";
|
||||||
|
RunAtLoad = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
})
|
||||||
Install.WantedBy = [ "default.target" ];
|
]
|
||||||
};
|
);
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue