git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2] Makefile: Simplify handling of python scripts

From
Brian Gernhardt <brian@gernhardtsoftware.com>
Date
Apr 9, 2010, 15:57 UTC
Message-ID
<1270828665-29373-1-git-send-email-brian@gernhardtsoftware.com>
In-Reply-To
<i2ifabb9a1e1004090839hd55a81bfid820180815c8d94d@mail.gmail.com>

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>
---
  On Apr 9, 2010, at 11:39 AM, Sverre Rabbelier wrote:
  > My sed foo is not that great, can you explain (in the commit message)
  > what exactly the new sed script does?
  
  Certainly.  (And the commit message is the only change from v1.)
 Makefile              |    9 ++-------
 git-remote-testgit.py |    2 ++
 2 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index f0fe351..87c90d6 100644
--- a/Makefile
+++ b/Makefile
@@ -1629,13 +1629,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.insert(0, os.getenv("GITPYTHONLIB",\
-	                                        "@@INSTLIBDIR@@"));|' \
+	sed -e '1s|#!.*python|#!$(PYTHON_PATH_SQ)|' \
+	    -e 's|\(os\.getenv("GITPYTHONLIB"\)[^)]*)|\1,"@@INSTLIBDIR@@")|' \
 	    -e 's|@@INSTLIBDIR@@|'"$$INSTLIBDIR"'|g' \
 	    $@.py >$@+ && \
 	chmod +x $@+ && \
diff --git a/git-remote-testgit.py b/git-remote-testgit.py
index f61624e..9253922 100644
--- a/git-remote-testgit.py
+++ b/git-remote-testgit.py
@@ -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
-- 
1.7.1.rc0.243.g2ce66
Previous: Sverre RabbelierNext: Sverre Rabbelier
Message 4 of 12 in “*** SUBJECT HERE ***”
  1. 0/3 *** SUBJECT HERE ***Brian Gernhardt, Apr 9, 2010
  2. Makefile: Simplify handling of python scriptsBrian Gernhardt, Apr 9, 2010
  3. Sverre RabbelierApr 9, 2010
  4. Makefile: Simplify handling of python scriptsBrian Gernhardt, Apr 9, 2010
  5. Sverre RabbelierApr 9, 2010
  6. 2/3 Document send-email --smtp-domainBrian Gernhardt, Apr 9, 2010
  7. 3/3 send-email: Add sendemail.smtpdomainBrian Gernhardt, Apr 9, 2010
  8. Jakub NarebskiApr 9, 2010
  9. Brian GernhardtApr 10, 2010
  10. 1/3 send-email: Don't use FQDNs without a '.'Brian Gernhardt, Apr 9, 2010
  11. Jakub NarebskiApr 9, 2010
  12. Brian GernhardtApr 10, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.