Adding documentation to wrap.sh, added ability to retain any desired environment variables.

This commit is contained in:
Allen Nelson 2015-05-21 23:32:03 -05:00
parent ee1f140d40
commit 06ff4af597
2 changed files with 25 additions and 4 deletions

View File

@ -47,11 +47,24 @@
# Execute after shell hook
, postShellHook ? ""
# Environment variables to set in wrapper scripts, in addition to
# PYTHONPATH and PATH.
, setEnvVars ? []
, ... } @ attrs:
# Keep extra attributes from `attrs`, e.g., `patchPhase', etc.
if disabled then throw "${name} not supported for interpreter ${python.executable}" else python.stdenv.mkDerivation (attrs // {
if disabled
then throw "${name} not supported for interpreter ${python.executable}"
else
let
inherit (builtins) hasAttr;
inherit (lib) mapAttrs concatStringsSep optionals hasSuffix;
in
python.stdenv.mkDerivation (attrs // {
inherit doCheck;
name = namePrefix + name;

View File

@ -41,9 +41,17 @@ wrapPythonProgramsIn() {
# wrapProgram creates the executable shell script described
# above. The script will set PYTHONPATH and PATH variables.!
# (see pkgs/build-support/setup-hooks/make-wrapper.sh)
wrapProgram $f \
local wrap_args="$f \
--prefix PYTHONPATH ':' $program_PYTHONPATH \
--prefix PATH ':' $program_PATH
--prefix PATH ':' $program_PATH"
# Add any additional environment variables to propagate.
for env_var in $setEnvVars; do
# Look up the value of this variable
local value=$(eval "echo \$$env_var")
wrap_args="$wrap_args --set $env_var $value"
done
wrapProgram $wrap_args
fi
fi
done