From b66fa26eaad3fcbf92af680b686f3d2680539128 Mon Sep 17 00:00:00 2001 From: Chris Wells Date: Sat, 22 Mar 2025 12:26:11 -0500 Subject: Adding to repo --- modules/home-manager/cook-cli/service.nix | 56 +++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 modules/home-manager/cook-cli/service.nix (limited to 'modules/home-manager/cook-cli/service.nix') diff --git a/modules/home-manager/cook-cli/service.nix b/modules/home-manager/cook-cli/service.nix new file mode 100644 index 0000000..c4e8083 --- /dev/null +++ b/modules/home-manager/cook-cli/service.nix @@ -0,0 +1,56 @@ +{ config, pkgs, lib, ... }: +with builtins // lib; +let + cfg = config.services.cook-cli; + pcfg = config.programs.cook-cli; + args = escapeShellArgs ([ + "--port" + (toString cfg.port) + ] ++ cfg.extraArgs ++ [ + cfg.recipeRoot + ]); +in { + options.services.cook-cli = { + enable = mkEnableOption "cook-cli webserver"; + package = mkOption { + type = types.package; + default = pcfg.package; + description = '' + cook-cli package. It is recommended to set this only in programs.cook-cli + ''; + }; + + recipeRoot = mkOption { + type = types.path; + default = "${config.xdg.dataHome}/cookbook"; + }; + + port = mkOption { + type = types.port; + defulat = 9080; + }; + + extraArgs = mkOption { + type = with types; listOf str; + default = []; + }; + }; + + config = mkIf cfg.enable { + systemd.user.services.cook-cli = { + Unit = { + Description = "A website for serving cooklang cookbooks"; + After = [ "network.target" ]; + }; + Service = { + Restart = "on-failure"; + RestartSec = 10; + Type = "simple"; + ExecStart = "${getExe cfg.package} server ${args}"; + }; + Install = { + WantedBy = [ "default.target" ]; + }; + }; + }; +} -- cgit v1.2.3