diff options
-rw-r--r-- | lib/default.nix | 17 | ||||
-rw-r--r-- | shell.nix | 12 |
2 files changed, 22 insertions, 7 deletions
diff --git a/lib/default.nix b/lib/default.nix index a02fe34b..2cbaf55c 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -7,12 +7,19 @@ rec { importPathStore = p: "${append ../. "/${p}"}"; mkPathable = s: toString ( - if s.type == "local" - then (lib.path.append ../. s.outPath) - else s.outPath + if lib.path.subpath.isValid s + then (lib.path.append ../. s) + else s ); + kvPath = k: v: "${k}=${v}"; + + fromSources = sources: + lib.attrsets.mapAttrs + (k: v: v.outPath) + sources; + mkNixPath = sources: lib.attrsets.mapAttrsToList - (k: v: "${k}=${mkPathable v}") - (removeAttrs sources [ "__functor" ]); + (k: v: kvPath k (mkPathable v)) + sources; } diff --git a/shell.nix b/shell.nix index 7714e111..d1270312 100644 --- a/shell.nix +++ b/shell.nix @@ -3,9 +3,17 @@ let nixpkgs = sources.nixpkgs; pkgs = import nixpkgs { }; - lib = import ./lib { inherit pkgs; }; + inherit (pkgs) lib; + # lib = import ./lib { inherit pkgs; }; + inherit (import ./lib { inherit pkgs; }) mkNixPath fromSources; - nixPath = builtins.concatStringsSep ":" (lib.mkNixPath sources); + nixPath = builtins.concatStringsSep ":" (mkNixPath + ({ + personal = ./packages; + nixpkgs-overlays = ./overlays; + private = ./private; + } // (fromSources sources)) + ); in pkgs.mkShell { |