From 7de78344d7f7906b05e8deb3e8c793f502de5cf3 Mon Sep 17 00:00:00 2001 From: Sam Willcocks Date: Thu, 11 May 2023 17:46:13 +0100 Subject: [PATCH] Add nixos module --- flake.nix | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 3cad4ec..e479ce1 100644 --- a/flake.nix +++ b/flake.nix @@ -49,5 +49,44 @@ }; formatter = pkgs.alejandra; hydraJobs.build = packages.default; - }); + }) + // { + overlays.default = final: prev: { + rolebot = self.packages.${prev.system}.default; + }; + + nixosModules.default = { + config, + lib, + pkgs, + ... + }: + with lib; let + cfg = config.services.rolebot; + in { + options.services.rolebot = { + enable = mkEnableOption "Enable the rolebot service"; + environmentFile = mkOption { + type = types.path; + description = "Path to the environment file"; + }; + }; + config = mkIf cfg.enable { + nixpkgs.overlays = [self.overlays.default]; + systemd.services.rolebot = { + description = "Discord role bot"; + wantedBy = ["multi-user.target"]; + after = ["network-online.target"]; + wants = ["network-online.target"]; + serviceConfig = { + User = "rolebot"; + ExecStart = "${pkgs.rolebot}/bin/rolebot"; + Restart = "on-failure"; + DynamicUser = true; + EnvironmentFile = cfg.environmentFile; + }; + }; + }; + }; + }; }