summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2015-07-16 11:54:00 +0200
committerGregor Kleen <gkleen@yggdrasil.li>2015-07-16 11:54:00 +0200
commit0c7281ee4a7858b8288cd6c3d60da8b40cb2e698 (patch)
treebaa8f914f99425cc8807efa46a503289db5e6d40
parentda267a7cf4459ce35901c83e3423fff7767244a0 (diff)
downloadnixos-0c7281ee4a7858b8288cd6c3d60da8b40cb2e698.tar
nixos-0c7281ee4a7858b8288cd6c3d60da8b40cb2e698.tar.gz
nixos-0c7281ee4a7858b8288cd6c3d60da8b40cb2e698.tar.bz2
nixos-0c7281ee4a7858b8288cd6c3d60da8b40cb2e698.tar.xz
nixos-0c7281ee4a7858b8288cd6c3d60da8b40cb2e698.zip
Wrapper around redo for $PATH reasons
-rw-r--r--custom/redo-wrapper.nix16
-rw-r--r--custom/redo.nix1
-rw-r--r--custom/redo.patch18
-rw-r--r--users/gkleen@vali.nix2
4 files changed, 36 insertions, 1 deletions
diff --git a/custom/redo-wrapper.nix b/custom/redo-wrapper.nix
new file mode 100644
index 00000000..20e1675a
--- /dev/null
+++ b/custom/redo-wrapper.nix
@@ -0,0 +1,16 @@
1{ stdenv, makeWrapper, haskellPackages }:
2
3let
4 redo = haskellPackages.callPackage ./redo.nix {};
5in stdenv.mkDerivation {
6 name = "redo-wrapper";
7
8 nativeBuildInputs = [ makeWrapper ];
9
10 buildCommand = ''
11 mkdir -p $out/bin
12 ln -s $out/bin/redo $out/bin/redo-ifchange
13 makeWrapper ${redo}/bin/redo $out/bin/redo \
14 --set REDO_PATH "$out/bin"
15 '';
16}
diff --git a/custom/redo.nix b/custom/redo.nix
index 9d679e55..b5255f98 100644
--- a/custom/redo.nix
+++ b/custom/redo.nix
@@ -9,6 +9,7 @@ cabal.mkDerivation (self: {
9 isLibrary = false; 9 isLibrary = false;
10 isExecutable = true; 10 isExecutable = true;
11 buildDepends = [ filepath pureMD5 ]; 11 buildDepends = [ filepath pureMD5 ];
12 patches = [ ./redo.patch ];
12 meta = { 13 meta = {
13 homepage = "https://github.com/jekor/redo"; 14 homepage = "https://github.com/jekor/redo";
14 description = "software build system, make replacement, implementation of djb's redo"; 15 description = "software build system, make replacement, implementation of djb's redo";
diff --git a/custom/redo.patch b/custom/redo.patch
new file mode 100644
index 00000000..cd3a678e
--- /dev/null
+++ b/custom/redo.patch
@@ -0,0 +1,18 @@
1diff --git a/redo.hs b/redo.hs
2index f0e816a..01c6a2e 100644
3--- a/redo.hs
4+++ b/redo.hs
5@@ -48,7 +48,12 @@ redo target dir = do
6 createDirectoryIfMissing True metaDepsDir
7 writeMD5 target path
8 oldEnv <- getEnvironment
9- let newEnv = toList $ adjust (++ ":.") "PATH" $ insert "REDO_TARGET" target $ fromList oldEnv
10+ redoPath <- lookupEnv "REDO_PATH"
11+ let
12+ redoPath' = case redoPath of
13+ Just p -> p
14+ _ -> "."
15+ newEnv = toList $ adjust (++ (':' : redoPath')) "PATH" $ insert "REDO_TARGET" target $ fromList oldEnv
16 (_, _, _, ph) <- createProcess $ (shell $ cmd path) {env = Just newEnv}
17 exit <- waitForProcess ph
18 case exit of
diff --git a/users/gkleen@vali.nix b/users/gkleen@vali.nix
index 9effa4dd..0ac360dc 100644
--- a/users/gkleen@vali.nix
+++ b/users/gkleen@vali.nix
@@ -1,5 +1,5 @@
1{ 1{
2 packageOverrides = pkgs: rec { 2 packageOverrides = pkgs: rec {
3 redo = pkgs.haskellPackages.callPackage ../custom/redo.nix {}; 3 redo = pkgs.callPackage ../custom/redo-wrapper.nix {};
4 } // (import ../utils/nix/default.nix) {}; 4 } // (import ../utils/nix/default.nix) {};
5} 5}