From 2efbe2dacfa63062d2adb777af7e356ce9fb3fb8 Mon Sep 17 00:00:00 2001 From: Jeremy Wall Date: Mon, 28 Feb 2022 16:31:05 -0500 Subject: [PATCH] Add a module to configure kitchen with --- flake.nix | 1 + nix/kitchen/module.nix | 32 ++++++++++++++++++++++++++++++++ result | 1 + 3 files changed, 34 insertions(+) create mode 100644 nix/kitchen/module.nix create mode 120000 result diff --git a/flake.nix b/flake.nix index ee02fea..ced400d 100644 --- a/flake.nix +++ b/flake.nix @@ -43,6 +43,7 @@ ; }; defaultPackage = kitchen; + nixosModules.kitchen = import ./nix/kitchen/module.nix; } ); } \ No newline at end of file diff --git a/nix/kitchen/module.nix b/nix/kitchen/module.nix new file mode 100644 index 0000000..4a99114 --- /dev/null +++ b/nix/kitchen/module.nix @@ -0,0 +1,32 @@ +{config, lib, pkgs, ...}: +with lib; +{ + options = { + services.kitchen.enable = mkEnableOption "Activates the kitchen recipe/shopping service"; + + services.kitchen.listenSocket = mkOption { + description = "Listen socket for the kitchen service"; + default = "0.0.0.0:9003"; + defaultText = "0.0.0.0:9003"; + }; + }; + + config = mkIf config.services.kitchen.enable { + nixpkgs.overlays = [ + (final: prev: { + kitchen = (import ../packages/kitchen/package.nix) { inherit pkgs; }; + recipes = (import ../packages/recipes/package.nix) { inherit pkgs; }; + }) + ]; + systemd.services.kitchen = { + wantedBy = [ "multi-user.target" "default.target" ]; + wants = [ "network.target" ]; + after = [ "networ-online.target" ]; + serviceConfig = { + restart = "on-failure"; + restartSec = "10s"; + ExecStart = "${self.packages."${system}".kitchen}/bin/kitchen serve --listen ${config.services.kitchen.listenSocket} --dir ${pkgs.recipes}"; + }; + }; + }; +} \ No newline at end of file diff --git a/result b/result new file mode 120000 index 0000000..140c7da --- /dev/null +++ b/result @@ -0,0 +1 @@ +/nix/store/vyw5rbm7vqyzp27b1a2c2s4x6vfdn4xa-rust-workspace-0.2.1 \ No newline at end of file