nix: add package & NixOS module

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I5bfbacb984356f912f1f40d6209f0a896a6a6964
This commit is contained in:
raf 2026-02-18 23:46:53 +03:00
commit d8f0bf3b09
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF
4 changed files with 99 additions and 2 deletions

38
nix/modules/nixos.nix Normal file
View file

@ -0,0 +1,38 @@
self: {
config,
pkgs,
lib,
...
}: let
inherit (lib.modules) mkIf;
inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) package;
cfg = config.services.pscand;
in {
options.services.pscand = {
enable = mkEnableOption "Pluggable System Condition Monitoring Daemon";
package = mkOption {
type = package;
default = self.packages.${pkgs.hostPlatform.system.pscand};
defaultText = "self.packages.$${pkgs.hostPlatform.system}.pscand";
description = "The pscand package to use";
};
};
config = mkIf cfg.enable {
systemd.packages = [cfg.package];
systemd.services.pscand = {
wantedBy = ["multi-user.target"];
after = ["network.target"];
serviceConfig = {
Type = "simple";
ExecStart = "${cfg.package}/bin/pscand";
Restart = "on-failure";
RestartSec = "5s";
Environment = ["${cfg.package}/lib/pscand/scanners"]; # FIXME: make this configurable
};
};
};
}