diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix index 6e0338da91940..081bfd5918b87 100644 --- a/pkgs/applications/version-management/git-and-tools/default.nix +++ b/pkgs/applications/version-management/git-and-tools/default.nix @@ -74,6 +74,10 @@ rec { git-radar = callPackage ./git-radar { }; + git-recent = callPackage ./git-recent { + utillinux = if stdenv.isLinux then utillinuxMinimal else null; + }; + git-remote-hg = callPackage ./git-remote-hg { }; git-stree = callPackage ./git-stree { }; diff --git a/pkgs/applications/version-management/git-and-tools/git-recent/default.nix b/pkgs/applications/version-management/git-and-tools/git-recent/default.nix new file mode 100644 index 0000000000000..ae1139e999379 --- /dev/null +++ b/pkgs/applications/version-management/git-and-tools/git-recent/default.nix @@ -0,0 +1,41 @@ +{stdenv, git, less, fetchFromGitHub, makeWrapper +# utillinuxMinimal is included because we need the column command +, utillinux ? null +}: + +assert stdenv.isLinux -> utillinux != null; + +let + binpath = stdenv.lib.makeBinPath + ([ git less ] + ++ stdenv.lib.optional (utillinux != null) utillinux); +in stdenv.mkDerivation rec { + name = "git-recent-${version}"; + version = "1.0.3"; + + src = fetchFromGitHub { + owner = "paulirish"; + repo = "git-recent"; + rev = "v${version}"; + sha256 = "0rckjjrw2xmvmbqaf66i36x59vs1v4pfnmvbinx5iggp7vjly1a4"; + }; + + buildInputs = [ makeWrapper ]; + + buildPhase = null; + + installPhase = '' + mkdir -p $out/bin + cp git-recent $out/bin + wrapProgram $out/bin/git-recent \ + --prefix PATH : "${binpath}" + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/paulirish/git-recent; + description = "See your latest local git branches, formatted real fancy"; + license = licenses.mit; + platforms = platforms.all; + maintainers = [ maintainers.jlesquembre ]; + }; +}