summary refs log tree commit diff
path: root/pkgs/tools/misc/gawp/default.nix
diff options
context:
space:
mode:
authorKamil Chmielewski <kamil.chm@gmail.com>2016-04-26 21:09:45 +0200
committerKamil Chmielewski <kamil.chm@gmail.com>2016-06-09 11:21:30 +0200
commit5c2628a7049841b152b304443e7a364f60e1768b (patch)
tree5599b85528696575efbd8c532b102d664435b7ff /pkgs/tools/misc/gawp/default.nix
parentbfa32800c3df6dd3a8e23bd239ec102173407249 (diff)
downloadnixpkgs-5c2628a7049841b152b304443e7a364f60e1768b.tar
nixpkgs-5c2628a7049841b152b304443e7a364f60e1768b.tar.gz
nixpkgs-5c2628a7049841b152b304443e7a364f60e1768b.tar.bz2
nixpkgs-5c2628a7049841b152b304443e7a364f60e1768b.tar.lz
nixpkgs-5c2628a7049841b152b304443e7a364f60e1768b.tar.xz
nixpkgs-5c2628a7049841b152b304443e7a364f60e1768b.tar.zst
nixpkgs-5c2628a7049841b152b304443e7a364f60e1768b.zip
When using common deps include only specified packages, not all set
Diffstat (limited to 'pkgs/tools/misc/gawp/default.nix')
-rw-r--r--pkgs/tools/misc/gawp/default.nix34
1 files changed, 24 insertions, 10 deletions
diff --git a/pkgs/tools/misc/gawp/default.nix b/pkgs/tools/misc/gawp/default.nix
index 608b1764887..5f87d2bed71 100644
--- a/pkgs/tools/misc/gawp/default.nix
+++ b/pkgs/tools/misc/gawp/default.nix
@@ -1,8 +1,31 @@
 # This file was generated by go2nix.
 { stdenv, lib, goPackages, fetchgit, fetchhg, fetchbzr, fetchsvn }:
 
+with builtins;
 with goPackages;
 
+let
+  depToSrc = jsonDep:
+    {
+      inherit (jsonDep) goPackagePath;
+      src = if jsonDep.fetch.type == "git" then
+        fetchgit {
+          inherit (jsonDep.fetch) url rev sha256;
+        }
+        else {};
+    };
+
+  importGodeps = { depsFile, filterPackages ? [] }:
+  let
+    deps = lib.importJSON depsFile;
+    external = filter (d: d ? include) deps;
+    direct = filter (d: d ? goPackagePath && (length filterPackages == 0 || elem d.goPackagePath filterPackages)) deps;
+  in
+    concatLists (map importGodeps (map (d: { depsFile = ./. + d.include; filterPackages = d.packages; }) external)) ++ (map depToSrc direct);
+
+  godeps = importGodeps { depsFile = ./deps.json; };
+in
+
 buildGoPackage rec {
   name = "gawp-${version}";
   version = "20160121-${stdenv.lib.strings.substring 0 7 rev}";
@@ -16,14 +39,5 @@ buildGoPackage rec {
     sha256 = "0r4bp4w3s9rkmg3cz9jb7d6ngh7vfj31p9kbim6mhilxvmgjk4ly";
   };
 
-  extraSrcs = map ( jsonDep:
-    {
-      inherit (jsonDep) goPackagePath;
-      src = if jsonDep.fetch.type == "git" then
-        fetchgit {
-          inherit (jsonDep.fetch) url rev sha256;
-        }
-        else {};
-    }
-  ) (builtins.fromJSON (builtins.readFile ../../../development/go-modules/libs.json));
+  extraSrcs = godeps;
 }