python-wrapper: Fix variable name for sed expr.

Regression introduced by 5f55788531.

The commit not only changes documentation, but also changed a few
variable names. One of them is $i which now is $f and it contains the
name of the file to wrap.

This was accidentally found by @Profpatsch (thanks!) who found himself
getting the basename of the last patch file to end up in sys.argv[0].
The reason for this is that $i is used in the for loop of the generic
patchPhase and thus is reused later when the Python file is to be
wrapped.

I have also added a small comment noting about this, to be sure that
this won't accidentally occur the next time someone changes variable
names.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
This commit is contained in:
aszlig 2015-07-07 18:25:10 +02:00
parent afb7655c68
commit b028c14256
No known key found for this signature in database
GPG Key ID: D0EBD0EC8C2DC961
2 changed files with 4 additions and 1 deletions

View File

@ -37,6 +37,9 @@ wrapPythonProgramsIn() {
# dont wrap EGG-INFO scripts since they are called from python # dont wrap EGG-INFO scripts since they are called from python
if echo "$f" | grep -qv EGG-INFO/scripts; then if echo "$f" | grep -qv EGG-INFO/scripts; then
echo "wrapping \`$f'..." echo "wrapping \`$f'..."
# The magicalSedExpression will invoke a "$(basename "$f")", so
# if you change $f to something else, be sure to also change it
# in pkgs/top-level/python-packages.nix!
sed -i "$f" -re '@magicalSedExpression@' sed -i "$f" -re '@magicalSedExpression@'
# wrapProgram creates the executable shell script described # wrapProgram creates the executable shell script described
# above. The script will set PYTHONPATH and PATH variables.! # above. The script will set PYTHONPATH and PATH variables.!

View File

@ -68,7 +68,7 @@ let
/\\$/{N;br} /\\$/{N;br}
/__future__|^ *(#.*)?$/{n;br} /__future__|^ *(#.*)?$/{n;br}
${concatImapStrings mkStringSkipper quoteVariants} ${concatImapStrings mkStringSkipper quoteVariants}
/^ *[^# ]/i import sys; sys.argv[0] = '"'$(basename "$i")'"' /^ *[^# ]/i import sys; sys.argv[0] = '"'$(basename "$f")'"'
} }
''; '';
} }