Makefile: Simplify handling of python scripts
The sed script intended to add a standard opening to python scripts was non-compatible and overly complex. Simplifying it down to a set of one-liners removes the compatibility issues of newlines. Moving the environment alterations from the Makefile to the python scripts makes also makes the scripts easier to run in-place. Specifically, the new sed script: - Alters the shebang line to use the configured Python. - Alters any os.getenv("GITPYTHONLIB") calls to use @@INSTLIBDIR@@ as the default. This will replace any existing default or add a default if none is provided. - Replaces the @@INSTLIBDIR@@ placeholder with the directory git installs its python libraries to. The last two steps could be combined into a single step, but is left separate in case someone has another need for @@INSTLIBDIR@@ in their script. Suggested-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com> Acked-by: Sverre Rabbelier <srabbelier@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
2cb5a48195
commit
f733f6a0c6
10
Makefile
10
Makefile
@ -1606,14 +1606,8 @@ $(patsubst %.py,%,$(SCRIPT_PYTHON)): % : %.py
|
||||
INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C git_remote_helpers -s \
|
||||
--no-print-directory prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' \
|
||||
instlibdir` && \
|
||||
sed -e '1{' \
|
||||
-e ' s|#!.*python|#!$(PYTHON_PATH_SQ)|' \
|
||||
-e '}' \
|
||||
-e 's|^import sys.*|&; \\\
|
||||
import os; \\\
|
||||
sys.path[0] = os.environ.has_key("GITPYTHONLIB") and \\\
|
||||
os.environ["GITPYTHONLIB"] or \\\
|
||||
"@@INSTLIBDIR@@"|' \
|
||||
sed -e '1s|#!.*python|#!$(PYTHON_PATH_SQ)|' \
|
||||
-e 's|\(os\.getenv("GITPYTHONLIB"\)[^)]*)|\1,"@@INSTLIBDIR@@")|' \
|
||||
-e 's|@@INSTLIBDIR@@|'"$$INSTLIBDIR"'|g' \
|
||||
$@.py >$@+ && \
|
||||
chmod +x $@+ && \
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
import hashlib
|
||||
import sys
|
||||
import os
|
||||
sys.path.insert(0, os.getenv("GITPYTHONLIB","."))
|
||||
|
||||
from git_remote_helpers.util import die, debug, warn
|
||||
from git_remote_helpers.git.repo import GitRepo
|
||||
|
Loading…
Reference in New Issue
Block a user