aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2007-06-22 01:10:12 -0400
committerShawn O. Pearce <spearce@spearce.org>2007-06-22 01:10:12 -0400
commit4e817d1ac4f10916343a2610a55f5af8bc949f65 (patch)
tree9c90b224621a5b744f539b598ead84070cc9558d
parentfb626dc00044c106652ae39300b4cb613af70ab1 (diff)
downloadgit-4e817d1ac4f10916343a2610a55f5af8bc949f65.tar.gz
git-4e817d1ac4f10916343a2610a55f5af8bc949f65.tar.xz
git-gui: Don't require $DISPLAY just to get --version
Junio asked that we don't force the user to have a valid X11 server configured in $DISPLAY just to obtain the output of `git gui version`. This makes sense, the user may be an automated tool that is running without an X server available to it, such as a build script or other sort of package management system. Or it might just be a user working in a non-GUI environment and wondering "what version of git-gui do I have installed?". Tcl has a lot of warts, but one of its better ones is that a comment can be continued to the next line by escaping the LF that would have ended the comment using a backslash-LF sequence. In the past we have used this trick to escape away the 'exec wish' that is actually a Bourne shell script and keep Tcl from executing it. I'm using that feature here to comment out the Bourne shell script and hide it from the Tcl engine. Except now our Bourne shell script is a few lines long and checks to see if it should print the version, or not. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
-rw-r--r--Makefile2
-rwxr-xr-xgit-gui.sh13
2 files changed, 8 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index 9d99f6704..ab550fc6a 100644
--- a/Makefile
+++ b/Makefile
@@ -68,7 +68,7 @@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
fi; \
fi && \
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
- -e 's|^exec wish "$$0"|exec $(subst |,'\|',$(TCLTK_PATH_SQ)) "$$0"|' \
+ -e 's|^ exec wish "$$0"| exec $(subst |,'\|',$(TCLTK_PATH_SQ)) "$$0"|' \
-e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \
-e 's|@@GITGUI_RELATIVE@@|'$$GITGUI_RELATIVE'|' \
-e $$GITGUI_RELATIVE's|@@GITGUI_LIBDIR@@|$(libdir_SQ)|' \
diff --git a/git-gui.sh b/git-gui.sh
index 97de595f2..6ee0573c9 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -1,6 +1,12 @@
#!/bin/sh
# Tcl ignores the next line -*- tcl -*- \
-exec wish "$0" -- "$@"
+ if test "z$*" = zversion \
+ || test "z$*" = z--version; \
+ then \
+ echo 'git-gui version @@GITGUI_VERSION@@'; \
+ exit; \
+ fi; \
+ exec wish "$0" -- "$@"
set appvers {@@GITGUI_VERSION@@}
set copyright {
@@ -271,11 +277,6 @@ proc tk_optionMenu {w varName args} {
##
## version check
-if {{--version} eq $argv || {version} eq $argv} {
- puts "git-gui version $appvers"
- exit
-}
-
set req_maj 1
set req_min 5