1{ lib, stdenv, git, xdg-utils, gnugrep, fetchFromGitHub, installShellFiles, makeWrapper, pandoc }:
2
3stdenv.mkDerivation rec {
4 pname = "git-open";
5 version = "3.0.0";
6
7 src = fetchFromGitHub {
8 owner = "paulirish";
9 repo = "git-open";
10 rev = "v${version}";
11 sha256 = "sha256-Bag2rI2uR7ilkg2ozjR8tPXqKz5XjiY7WAUJKTVTXd8=";
12 };
13
14 nativeBuildInputs = [ installShellFiles makeWrapper pandoc ];
15
16 buildPhase = ''
17 # marked-man is broken and severly outdated.
18 # pandoc with some extra metadata is good enough and produces a by man readable file.
19 cat <(echo echo '% git-open (1) Version ${version} | Git manual') git-open.1.md > tmp
20 mv tmp git-open.1.md
21 pandoc --standalone --to man git-open.1.md -o git-open.1
22 '';
23
24 installPhase = ''
25 mkdir -p $out/bin
26 mv git-open $out/bin
27 installManPage git-open.1
28 wrapProgram $out/bin/git-open \
29 --prefix PATH : "${lib.makeBinPath [ gnugrep ]}" \
30 --suffix PATH : "${lib.makeBinPath [ xdg-utils ]}"
31 '';
32
33 meta = with lib; {
34 homepage = "https://github.com/paulirish/git-open";
35 description = "Open the GitHub page or website for a repository in your browser";
36 license = licenses.mit;
37 platforms = platforms.all;
38 maintainers = with maintainers; [ SuperSandro2000 ];
39 mainProgram = "git-open";
40 };
41}