1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{ writeTextFile, stdenv, python3 }:
{
writePythonScriptBin = name: packagesSelectionFun: text:
let
mkScriptName = s: (builtins.replaceStrings [ "\\" ] [ "-" ] s);
x = writeTextFile { name = "unit-script.py"; executable = true; destination = "/bin/${mkScriptName name}"; text = "#!/usr/bin/env python3\n${text}"; };
deriv = stdenv.mkDerivation {
name = mkScriptName name;
buildInputs = [ (python3.withPackages (pythonPackages: packagesSelectionFun pythonPackages)) ];
unpackPhase = "true";
installPhase = ''
mkdir -p $out/bin
cp ${x}/bin/${mkScriptName name} $out/bin/${mkScriptName name}
'';
};
in "${deriv}/bin/${mkScriptName name}";
}