|
{ inputs, ... }: |
|
|
|
{ |
|
perSystem = |
|
{ |
|
config, |
|
lib, |
|
system, |
|
... |
|
}: |
|
{ |
|
devShells = |
|
let |
|
pkgs = import inputs.nixpkgs { inherit system; }; |
|
stdenv = pkgs.stdenv; |
|
scripts = config.packages.python-scripts; |
|
in |
|
lib.pipe (config.packages) [ |
|
(lib.concatMapAttrs ( |
|
name: package: { |
|
${name} = pkgs.mkShell { |
|
name = "${name}"; |
|
inputsFrom = [ package ]; |
|
shellHook = '' |
|
echo "Entering ${name} devShell" |
|
''; |
|
}; |
|
"${name}-extra" = |
|
if (name == "python-scripts") then |
|
null |
|
else |
|
pkgs.mkShell { |
|
name = "${name}-extra"; |
|
inputsFrom = [ |
|
package |
|
scripts |
|
]; |
|
|
|
packages = [ |
|
pkgs.python3Packages.tiktoken |
|
]; |
|
shellHook = '' |
|
echo "Entering ${name} devShell" |
|
addToSearchPath "LD_LIBRARY_PATH" "${lib.getLib stdenv.cc.cc}/lib" |
|
''; |
|
}; |
|
} |
|
)) |
|
(lib.filterAttrs (name: value: value != null)) |
|
]; |
|
}; |
|
} |
|
|