nixfiles/services/uxplay.nix
2024-03-17 05:59:27 +03:00

37 lines
No EOL
866 B
Nix
Executable file

{ lib, pkgs, ... }:
{
# UXPlay parameters
params ? [ ]
# Whether to also set up avahi daemon
, withAvahi ? false
, # Name of the systemd service
serviceName ? "uxplay"
, # UXPlay package
package ? pkgs.uxplay
, serviceConfig ? { }
}:
let
paramsJoined = builtins.concatStringsSep " " params;
in
{
systemd.services.${serviceName} = {
description = "${serviceName} Daemon";
after = [ "network.target" ] ++ lib.optionals withAvahi [ "avahi-daemon.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig.PrivateTmp = true;
script = ''
sleep 5 # idk needed for some reason
exec ${package}/bin/uxplay ${paramsJoined}
'';
} // serviceConfig;
} // lib.optionalAttrs withAvahi {
services.avahi = {
enable = true;
nssmdns4 = true;
publish = {
enable = true;
userServices = true;
};
};
}