about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix')
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix79
1 files changed, 43 insertions, 36 deletions
diff --git a/nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix b/nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix
index 19a40b7395fa..1a750da69301 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix
@@ -1,67 +1,74 @@
-{ stdenv, fetchFromGitHub, makeWrapper
-, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2, libxslt
-, coreutils, gawk, gnugrep, gnused, jq, nix }:
+{ stdenv, fetchFromGitHub, installShellFiles, makeWrapper, asciidoc
+, docbook_xml_dtd_45, git, docbook_xsl, libxml2, libxslt, coreutils, gawk
+, gnugrep, gnused, jq, nix }:
 
-stdenv.mkDerivation rec {
+let
+  binPath = stdenv.lib.makeBinPath [ coreutils gawk git gnugrep gnused jq nix ];
+
+in stdenv.mkDerivation rec {
   pname = "nix-prefetch";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "msteen";
     repo = "nix-prefetch";
     rev = version;
-    sha256 = "0b9gdi7xzmfq0j258x724xsll8gi31m0m4pzfjkqinlm6zwr3sgm";
+    sha256 = "15h6f743nn6sdq8l771sjxh92cyzqznkcs7szrc7nm066xvx8rd4";
+    # the stat call has to be in a subshell or we get the current date
+    extraPostFetch = ''
+      echo $(stat -c %Y $out) > $out/.timestamp
+    '';
   };
 
+  postPatch = ''
+    lib=$out/lib/${pname}
+
+    substituteInPlace doc/nix-prefetch.1.asciidoc \
+      --subst-var-by version $version
+
+    substituteInPlace src/main.sh \
+      --subst-var-by lib $lib \
+      --subst-var-by version $version
+
+    substituteInPlace src/tests.sh \
+      --subst-var-by bin $out/bin
+  '';
+
   nativeBuildInputs = [
+    asciidoc
+    docbook_xml_dtd_45
+    docbook_xsl
+    installShellFiles
+    libxml2
+    libxslt
     makeWrapper
-    asciidoc docbook_xml_dtd_45 docbook_xsl libxml2 libxslt
   ];
 
-  configurePhase = ''
-    . configure.sh
-  '';
+  dontConfigure = true;
 
   buildPhase = ''
-    a2x -f manpage doc/nix-prefetch.1.asciidoc
+    a2x -a revdate=$(date --utc --date=@$(cat $src/.timestamp) +%d/%m/%Y) \
+      -f manpage doc/nix-prefetch.1.asciidoc
   '';
 
   installPhase = ''
-    lib=$out/lib/${pname}
-    mkdir -p $lib
-    substitute src/main.sh $lib/main.sh \
-      --subst-var-by lib $lib \
-      --subst-var-by version '${version}'
-    chmod +x $lib/main.sh
-    patchShebangs $lib/main.sh
-    cp lib/*.nix $lib/
-
-    mkdir -p $out/bin
+    install -Dm555 -t $lib src/*.sh
+    install -Dm444 -t $lib lib/*
     makeWrapper $lib/main.sh $out/bin/${pname} \
-      --prefix PATH : '${stdenv.lib.makeBinPath [ coreutils gawk gnugrep gnused jq nix ]}'
-
-    substitute src/tests.sh $lib/tests.sh \
-      --subst-var-by bin $out/bin
-    chmod +x $lib/tests.sh
-    patchShebangs $lib/tests.sh
+      --prefix PATH : ${binPath}
 
-    mkdir -p $out/share/man/man1
-    substitute doc/nix-prefetch.1 $out/share/man/man1/nix-prefetch.1 \
-      --subst-var-by version '${version}' \
-      --replace '01/01/1970' "$date"
+    installManPage doc/nix-prefetch.?
 
-    install -D contrib/nix-prefetch-completion.bash $out/share/bash-completion/completions/nix-prefetch
-    install -D contrib/nix-prefetch-completion.zsh $out/share/zsh/site-functions/_nix_prefetch
+    installShellCompletion --name ${pname} contrib/nix-prefetch-completion.{bash,zsh}
 
     mkdir -p $out/share/doc/${pname}/contrib
-    cp -r contrib/hello_rs $out/share/doc/${pname}/contrib/
+    cp -r contrib/hello_rs $out/share/doc/${pname}/contrib
   '';
 
   meta = with stdenv.lib; {
     description = "Prefetch any fetcher function call, e.g. package sources";
-    homepage = "https://github.com/msteen/nix-prefetch";
     license = licenses.mit;
     maintainers = with maintainers; [ msteen ];
-    platforms = platforms.all;
+    inherit (src.meta) homepage;
   };
 }