X-Git-Url: https://gitweb.ps.run/chirp/blobdiff_plain/4eda259f142c2ba004e9182ec196f50999e562aa..d068d89a794d8ee0fe49ad84bb05dcb2f1f2a5fd:/flake.nix diff --git a/flake.nix b/flake.nix index fd691a8..3c33dce 100644 --- a/flake.nix +++ b/flake.nix @@ -1,56 +1,24 @@ { - description = "Chirp!"; + description = "Zig project flake"; inputs = { - zig.url = "github:mitchellh/zig-overlay"; + self.submodules = true; + zig2nix.url = "github:Cloudef/zig2nix"; }; - outputs = { - self, - zig, - pkgs, - }: let - nixosModule = { - config, - lib, - pkgs, - ... - }: { - options.services.chirp = { - enable = lib.mkEnableOption "Chirp"; + outputs = { zig2nix, ... }: let + flake-utils = zig2nix.inputs.flake-utils; + in (flake-utils.lib.eachDefaultSystem (system: let + env = zig2nix.outputs.zig-env.${system} {}; + in with builtins; with env.pkgs.lib; rec { + apps.default = env.app [] "zig build run -- \"$@\""; + packages.default = env.package { + src = cleanSource ./.; - port = lib.mkOption { - type = lib.types.port; - default = 8080; - description = "Port to listen on"; - }; - }; + nativeBuildInputs = with env.pkgs; []; + buildInputs = with env.pkgs; []; - 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"; + zigPreferMusl = false; }; - } - // { - nixosModules.default = nixosModule; - }; + })); }