diff --git a/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix b/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix new file mode 100644 index 000000000000..c80db8ee9582 --- /dev/null +++ b/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix @@ -0,0 +1,49 @@ +{ lib, fetchFromGitHub + +, coreutils +, git +, ncurses +, rustPlatform +, sqlite +}: + +rustPlatform.buildRustPackage rec { + pname = "git-branchless"; + version = "0.3.2"; + + src = fetchFromGitHub { + owner = "arxanas"; + repo = "git-branchless"; + rev = "v${version}"; + sha256 = "0pfiyb23ah1h6risrhjr8ky7b1k1f3yfc3z70s92q3czdlrk6k07"; + }; + + cargoSha256 = "0gplx80xhpz8kwry7l4nv4rlj9z02jg0sgb6zy1y3vd9s2j5wals"; + + # Remove path hardcodes patching if they get fixed upstream, see: + # https://github.com/arxanas/git-branchless/issues/26 + postPatch = '' + # Inline test hardcodes `echo` location. + substituteInPlace ./src/commands/wrap.rs --replace '/bin/echo' '${coreutils}/bin/echo' + + # Tests in general hardcode `git` location. + substituteInPlace ./src/testing.rs --replace '/usr/bin/git' '${git}/bin/git' + ''; + + buildInputs = [ + ncurses + sqlite + ]; + + preCheck = '' + # Tests require path to git. + export PATH_TO_GIT=${git}/bin/git + ''; + + meta = with lib; { + description = "A suite of tools to help you visualize, navigate, manipulate, and repair your commit history"; + homepage = "https://github.com/arxanas/git-branchless"; + license = licenses.asl20; + maintainers = with maintainers; [ nh2 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 236b55ba0a1e..7259a99702d7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5079,6 +5079,8 @@ in git-big-picture = callPackage ../applications/version-management/git-and-tools/git-big-picture { }; + git-branchless = callPackage ../applications/version-management/git-and-tools/git-branchless { }; + inherit (haskellPackages) git-brunch; git-bug = callPackage ../applications/version-management/git-and-tools/git-bug { };