diff options
Diffstat (limited to 'pkgs/by-name/gi/git-town/package.nix')
-rw-r--r-- | pkgs/by-name/gi/git-town/package.nix | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/pkgs/by-name/gi/git-town/package.nix b/pkgs/by-name/gi/git-town/package.nix new file mode 100644 index 000000000000..226afe310323 --- /dev/null +++ b/pkgs/by-name/gi/git-town/package.nix @@ -0,0 +1,74 @@ +{ lib, buildGoModule, fetchFromGitHub, installShellFiles, git, testers, git-town, makeWrapper }: + +buildGoModule rec { + pname = "git-town"; + version = "16.4.1"; + + src = fetchFromGitHub { + owner = "git-town"; + repo = "git-town"; + rev = "v${version}"; + hash = "sha256-8Xr1R6txsJBGzBtvvKOCg2lcAHksl4hNPc9zySkTfdg="; + }; + + vendorHash = null; + + nativeBuildInputs = [ installShellFiles makeWrapper ]; + + buildInputs = [ git ]; + + ldflags = + let + modulePath = "github.com/git-town/git-town/v${lib.versions.major version}"; + in + [ + "-s" + "-w" + "-X ${modulePath}/src/cmd.version=v${version}" + "-X ${modulePath}/src/cmd.buildDate=nix" + ]; + + nativeCheckInputs = [ git ]; + + preCheck = '' + HOME=$(mktemp -d) + + # this runs tests requiring local operations + rm main_test.go + ''; + + checkFlags = + let + # Disable tests requiring local operations + skippedTests = [ + "TestGodog" + "TestMockingRunner/MockCommand" + "TestMockingRunner/QueryWith" + "TestTestCommands/CreateChildFeatureBranch" + ]; + in + [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ]; + + postInstall = '' + installShellCompletion --cmd git-town \ + --bash <($out/bin/git-town completions bash) \ + --fish <($out/bin/git-town completions fish) \ + --zsh <($out/bin/git-town completions zsh) + + wrapProgram $out/bin/git-town --prefix PATH : ${lib.makeBinPath [ git ]} + ''; + + passthru.tests.version = testers.testVersion { + package = git-town; + command = "git-town --version"; + inherit version; + }; + + meta = with lib; { + description = "Generic, high-level git support for git-flow workflows"; + homepage = "https://www.git-town.com/"; + license = licenses.mit; + maintainers = with maintainers; [ allonsy blaggacao gabyx ]; + mainProgram = "git-town"; + }; +} |