about summary refs log tree commit diff
path: root/pkgs/applications/version-management
diff options
context:
space:
mode:
authorAlexey Lebedeff <alebedev@mirantis.com>2016-06-17 13:34:17 +0300
committerAlexey Lebedeff <alebedev@mirantis.com>2016-06-17 13:38:59 +0300
commit552388f8dfd185e603b2cf8888d6ef54696bbbd5 (patch)
tree50284f45af7ff2a46da07d6b78a55dbe661d130d /pkgs/applications/version-management
parent95b896228dfd560b76ed149ed80e12f15c60bd2f (diff)
diff-so-fancy: init at 0.9.3
Script was mentioned at GitHub blog -
https://github.com/blog/2188-git-2-9-has-been-released :)
Diffstat (limited to 'pkgs/applications/version-management')
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix49
2 files changed, 51 insertions, 0 deletions
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index 0732b0d7329f8..1aafb0aa99a87 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -23,6 +23,8 @@ rec {
 
   darcsToGit = callPackage ./darcs-to-git { };
 
+  diff-so-fancy = callPackage ./diff-so-fancy { };
+
   git = appendToName "minimal" gitBase;
 
   # The full-featured Git.
diff --git a/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix b/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
new file mode 100644
index 0000000000000..b29b1f90b5c34
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
@@ -0,0 +1,49 @@
+{stdenv, git, perl, ncurses, coreutils, fetchFromGitHub, makeWrapper, ...}:
+
+stdenv.mkDerivation rec {
+  name = "diff-so-fancy-${version}";
+  version = "0.9.3";
+
+  # perl is needed here so patchShebangs can do its job
+  buildInputs = [perl makeWrapper];
+
+  src = fetchFromGitHub {
+    owner = "so-fancy";
+    repo = "diff-so-fancy";
+    rev = "v${version}";
+    sha256 = "0b5k54h3l4z81p6f7n14g2r5vz7qdyyrbql0z7rwhb7sw7s7zrgx";
+  };
+
+  buildPhase = null;
+
+  installPhase = ''
+    mkdir -p $out/bin $out/lib/diff-so-fancy
+
+    # diff-so-fancy executable searches for it's library relative to
+    # itself, so we are copying executable to lib, and only symlink it
+    # from bin/
+    cp diff-so-fancy $out/lib/diff-so-fancy
+    cp -r lib $out/lib/diff-so-fancy
+    ln -s $out/lib/diff-so-fancy/diff-so-fancy $out/bin
+
+    # ncurses is needed for `tput`
+    wrapProgram $out/lib/diff-so-fancy/diff-so-fancy \
+      --prefix PATH : "${git}/share/git/contrib/diff-highlight" \
+      --prefix PATH : "${git}/bin" \
+      --prefix PATH : "${coreutils}/bin" \
+      --prefix PATH : "${ncurses.out}/bin"
+  '';
+
+  meta = {
+    homepage = https://github.com/so-fancy/diff-so-fancy;
+    description = "Good-looking diffs filter for git";
+    license = stdenv.lib.licenses.mit;
+
+    longDescription = ''
+      diff-so-fancy builds on the good-lookin' output of git contrib's
+      diff-highlight to upgrade your diffs' appearances.
+    '';
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}