# Gastown package - multi-agent workspace manager
# Takes src as argument so it can be called from both overlay and flake packages
{ lib
, buildGoModule
, src
, version ? "unknown"
}:

buildGoModule {
  pname = "gastown";
  inherit version src;
  vendorHash = "sha256-8SdvSASP+bJjMooqEQvkCzG+J6CbsK+HCQulrPnJZ1Y=";
  subPackages = [ "cmd/gt" ];
  doCheck = false;

  # Must match ldflags from gastown Makefile - BuiltProperly=1 is required
  # or gt will error with "This binary was built with 'go build' directly"
  ldflags = [
    "-X github.com/steveyegge/gastown/internal/cmd.Version=${version}"
    "-X github.com/steveyegge/gastown/internal/cmd.Commit=${version}"
    "-X github.com/steveyegge/gastown/internal/cmd.BuildTime=nix-build"
    "-X github.com/steveyegge/gastown/internal/cmd.BuiltProperly=1"
  ];

  meta = with lib; {
    description = "Gas Town - multi-agent workspace manager by Steve Yegge";
    homepage = "https://github.com/steveyegge/gastown";
    license = licenses.mit;
    mainProgram = "gt";
  };
}
