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