···5555 sh.tangled.pipeline.status
5656```
57575858-```sh
5959-go run . -addr :8080
6060-```
6161-6258## Configuration
63596460Core configuration controls how tack talks to Tangled. Provider-specific
+37
flake.nix
···1414 flake-utils.lib.eachDefaultSystem (
1515 system: let
1616 pkgs = nixpkgs.legacyPackages.${system};
1717+1818+ # The tack binary itself. We use buildGoModule because the module is
1919+ # a single `main` package at the repo root with internal subpackages.
2020+ # CGO is required for github.com/mattn/go-sqlite3.
2121+ tack = pkgs.buildGoModule {
2222+ pname = "tack";
2323+ version = "0.1.0";
2424+ src = ./.;
2525+2626+ # vendorHash pins the Go module download FOD. Update this whenever
2727+ # go.mod / go.sum changes by replacing it with lib.fakeHash and
2828+ # rebuilding to surface the new hash.
2929+ vendorHash = "sha256-2G9Bhflpw0BDcytKB4oOGIi3HR2fFd1rwZFcoIC09TQ=";
3030+3131+ # The repo ships a stale `tack` binary at the root that gets caught
3232+ # by `go test ./...`-style discovery; ignore it during the build.
3333+ subPackages = ["."];
3434+3535+ # mattn/go-sqlite3 needs cgo + a C compiler.
3636+ env.CGO_ENABLED = "1";
3737+ };
1738 in {
1839 devShells.default = pkgs.mkShell {
1940 packages = [
2041 pkgs.go
2142 ];
4343+ };
4444+4545+ packages = {
4646+ default = tack;
4747+ tack = tack;
4848+ };
4949+5050+ apps = {
5151+ default = {
5252+ type = "app";
5353+ program = "${tack}/bin/tack";
5454+ };
5555+ tack = {
5656+ type = "app";
5757+ program = "${tack}/bin/tack";
5858+ };
2259 };
2360 }
2461 );