flake.nix

 1{
 2  description = "matcha  a beautiful and functional email client for the terminal";
 3
 4  inputs = {
 5    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
 6    flake-utils.url = "github:numtide/flake-utils";
 7  };
 8
 9  outputs = { self, nixpkgs, flake-utils }:
10    flake-utils.lib.eachDefaultSystem (system:
11      let
12        pkgs = nixpkgs.legacyPackages.${system};
13      in
14      {
15        packages = rec {
16          matcha = pkgs.buildGoModule.override { go = pkgs.go_1_26; } {
17            pname = "matcha";
18            version = self.shortRev or "dev";
19
20            src = ./.;
21
22            vendorHash = "sha256-fZnAZwwQH2WNewS4pEkl7Bko4smdgo5omkdtA1voXkY=";
23
24            env.CGO_ENABLED = 0;
25
26            ldflags = [
27              "-s"
28              "-w"
29              "-X main.version=${self.shortRev or "dev"}"
30              "-X main.commit=${self.rev or "dirty"}"
31              "-X main.date=1970-01-01T00:00:00Z"
32            ];
33
34            meta = {
35              description = "A beautiful and functional email client for the terminal";
36              homepage = "https://github.com/floatpane/matcha";
37              license = pkgs.lib.licenses.mit;
38              mainProgram = "matcha";
39            };
40          };
41          default = matcha;
42        };
43
44        devShells.default = pkgs.mkShell {
45          buildInputs = with pkgs; [
46            go_1_26
47            gopls
48            gotools
49          ];
50        };
51      }
52    ) // {
53      overlays.default = final: _prev: {
54        matcha = self.packages.${final.system}.matcha;
55      };
56    };
57}