@matheusbsbs / matheus-bagliano / commits / f733f6a0c6
Fork 0

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>

Brian Gernhardt committed Apr 9, 2010 at 11:57 UTC f733f6a0c690a3d5e399c438d4dc3f2307418171
2 files changed +4 -8
Makefile
+2 -8
@@ -1606,14 +1606,8 @@ $(patsubst %.py,%,$(SCRIPT_PYTHON)): % : %.py
1606 INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C git_remote_helpers -s \
1607 --no-print-directory prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' \
1608 instlibdir` && \
1609 - sed -e '1{' \
1610 - -e ' s|#!.*python|#!$(PYTHON_PATH_SQ)|' \
1611 - -e '}' \
1612 - -e 's|^import sys.*|&; \\\
1613 - import os; \\\
1614 - sys.path[0] = os.environ.has_key("GITPYTHONLIB") and \\\
1615 - os.environ["GITPYTHONLIB"] or \\\
1616 - "@@INSTLIBDIR@@"|' \
1609 + sed -e '1s|#!.*python|#!$(PYTHON_PATH_SQ)|' \
1610 + -e 's|\(os\.getenv("GITPYTHONLIB"\)[^)]*)|\1,"@@INSTLIBDIR@@")|' \
1611 -e 's|@@INSTLIBDIR@@|'"$$INSTLIBDIR"'|g' \
1612 $@.py >$@+ && \
1613 chmod +x $@+ && \
git-remote-testgit.py
+2
@@ -2,6 +2,8 @@
2
3 import hashlib
4 import sys
5 +import os
6 +sys.path.insert(0, os.getenv("GITPYTHONLIB","."))
7
8 from git_remote_helpers.util import die, debug, warn
9 from git_remote_helpers.git.repo import GitRepo