X-Git-Url: https://gitweb.ps.run/chirp/blobdiff_plain/4eda259f142c2ba004e9182ec196f50999e562aa..24dd34a102c3a2019083e1bc19f325469a60f4a3:/flake.nix diff --git a/flake.nix b/flake.nix index fd691a8..e32262f 100644 --- a/flake.nix +++ b/flake.nix @@ -1,56 +1,35 @@ { - description = "Chirp!"; + description = "Chirp Flake"; - inputs = { - zig.url = "github:mitchellh/zig-overlay"; - }; + inputs.self.submodules = true; + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + inputs.flake-utils.url = "github:numtide/flake-utils"; - outputs = { - self, - zig, - pkgs, - }: let - nixosModule = { - config, - lib, - pkgs, - ... - }: { - options.services.chirp = { - enable = lib.mkEnableOption "Chirp"; + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = import nixpkgs { inherit system; }; + in { + packages.default = pkgs.stdenvNoCC.mkDerivation { + pname = "chirp"; + version = "0.0.0"; + src = ./.; - port = lib.mkOption { - type = lib.types.port; - default = 8080; - description = "Port to listen on"; + buildPhase = '' + mkdir -p .zig-cache-global/zig + ${pkgs.zig}/bin/zig build --global-cache-dir .zig-cache-global + ''; + + installPhase = '' + mkdir -p $out/bin + cp zig-out/bin/chirp $out/bin + ''; }; - }; - 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; - }; + apps.default = { + type = "app"; + program = "${self.packages.${system}.default}/bin/chirp"; }; - }; - }; - in { - # TODO: packages.default build - apps.default = { - type = "app"; - program = "${zig.packages.${pkgs.system}."0.14.0"} build run"; - }; - } - // { - nixosModules.default = nixosModule; - }; + }); } +