d994dabace
We do not use a "plugin system" for Git addons anymore, and therefore this directory is no longer useful. Indeed that directory is way more confusing, given that it includes more than mere Git addons, going from Bitbucket server command-line tools to complete rewrites of Git in exotic programming languages. Also, without this directory, the mental load of decision-making reduces a lot. When anyone is interested in including a new git-related tool, just put it into pkgs/applications/version-management, without apologies.
77 lines
2.1 KiB
Nix
77 lines
2.1 KiB
Nix
{ lib, buildGoModule, fetchFromGitHub, fetchpatch, installShellFiles, git, testers, git-town, makeWrapper }:
|
|
|
|
buildGoModule rec {
|
|
pname = "git-town";
|
|
version = "7.8.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "git-town";
|
|
repo = "git-town";
|
|
rev = "v${version}";
|
|
sha256 = "sha256-g9ooMIMN8DN2FcWYkDC1hICCleQYdHf30PYMCit/NMI=";
|
|
};
|
|
|
|
patches = [
|
|
# Fix "go vet" when building using Go 1.18.
|
|
(fetchpatch {
|
|
name = "fix-go-vet-in-go-1.18.patch";
|
|
url = "https://github.com/git-town/git-town/commit/23eb0aca7b28c6a0afc21db553aa0e35d35891aa.patch";
|
|
sha256 = "sha256-EyfhKVrQxRJNrYqaZI04dJogaXs1J+bbOIu7p8g2Clc=";
|
|
})
|
|
];
|
|
|
|
vendorSha256 = 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"
|
|
];
|
|
|
|
checkInputs = [ git ];
|
|
preCheck =
|
|
let
|
|
skippedTests = [
|
|
"TestGodog"
|
|
"TestRunner_CreateChildFeatureBranch"
|
|
"TestShellRunner_RunStringWith_Dir"
|
|
"TestMockingShell_MockCommand"
|
|
"TestShellRunner_RunStringWith_Input"
|
|
];
|
|
in
|
|
''
|
|
HOME=$(mktemp -d)
|
|
# Disable tests requiring local operations
|
|
buildFlagsArray+=("-run" "[^(${builtins.concatStringsSep "|" skippedTests})]")
|
|
'';
|
|
|
|
postInstall = ''
|
|
installShellCompletion --cmd git-town \
|
|
--bash <($out/bin/git-town completion bash) \
|
|
--fish <($out/bin/git-town completion fish) \
|
|
--zsh <($out/bin/git-town completion zsh)
|
|
|
|
wrapProgram $out/bin/git-town --prefix PATH : ${lib.makeBinPath [ git ]}
|
|
'';
|
|
|
|
passthru.tests.version = testers.testVersion {
|
|
package = git-town;
|
|
command = "git-town version";
|
|
version = "v${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 ];
|
|
};
|
|
}
|