From: patrick-scho Date: Tue, 8 Apr 2025 19:42:32 +0000 (+0200) Subject: add flake.nix X-Git-Url: https://gitweb.ps.run/chirp/commitdiff_plain/4eda259f142c2ba004e9182ec196f50999e562aa add flake.nix --- diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..fd691a8 --- /dev/null +++ b/flake.nix @@ -0,0 +1,56 @@ +{ + description = "Chirp!"; + + inputs = { + zig.url = "github:mitchellh/zig-overlay"; + }; + + outputs = { + self, + zig, + pkgs, + }: let + nixosModule = { + config, + lib, + pkgs, + ... + }: { + options.services.chirp = { + enable = lib.mkEnableOption "Chirp"; + + port = lib.mkOption { + type = lib.types.port; + default = 8080; + description = "Port to listen on"; + }; + }; + + config = lib.mkIf config.services.chirp.enable { + systemd.services.chirp = { + description = "Chirp SystemD Service!"; + wantedBy = ["multi-user.target"]; + after = ["network.target"]; + serviceConfig = { + ExecStart = "${zig.packages.master}"; + Restart = "always"; + Type = "simple"; + DynamicUser = "yes"; + }; + environment = { + PORT = toString config.services.chirp.port; + }; + }; + }; + }; + in { + # TODO: packages.default build + apps.default = { + type = "app"; + program = "${zig.packages.${pkgs.system}."0.14.0"} build run"; + }; + } + // { + nixosModules.default = nixosModule; + }; +}