git-gui: extract script to generate "git-gui"
Extract script to generate "git-gui". This change allows us to reuse the build logic with the Meson build system. Signed-off-by: Patrick Steinhardt <ps@pks.im>
Patrick Steinhardt committed
Mar 11, 2025 at 11:07 UTC
854e88335a3e68af46f62ce72037293920bd06f2
2 files changed
+30
-11
Makefile
+1
-11
@@ -127,7 +127,6 @@ gitexecdir_SQ = $(subst ','\'',$(gitexecdir))
127
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
128
TCL_PATH_SQ = $(subst ','\'',$(TCL_PATH))
129
TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH))
130
-TCLTK_PATH_SED = $(subst ','\'',$(subst \,\\,$(TCLTK_PATH)))
130
131
gg_libdir ?= $(sharedir)/git-gui/lib
132
libdir_SQ = $(subst ','\'',$(gg_libdir))
@@ -202,16 +201,7 @@ git-gui: windows/git-gui.sh
201
endif
202
203
$(GITGUI_MAIN): git-gui.sh GIT-VERSION-FILE GIT-GUI-BUILD-OPTIONS
205
- $(QUIET_GEN)rm -f $@ $@+ && \
206
- sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
207
- -e 's|@@SHELL_PATH@@|$(SHELL_PATH_SQ)|' \
208
- -e '1,30s|^ exec wish | exec '\''$(TCLTK_PATH_SED)'\'' |' \
209
- -e 's/@@GITGUI_VERSION@@/$(GITGUI_VERSION)/g' \
210
- -e 's|@@GITGUI_RELATIVE@@|$(GITGUI_RELATIVE)|' \
211
- -e '$(GITGUI_RELATIVE)s|@@GITGUI_LIBDIR@@|$(libdir_SED)|' \
212
- git-gui.sh >$@+ && \
213
- chmod +x $@+ && \
214
- mv $@+ $@
204
+ $(QUIET_GEN)$(SHELL_PATH) generate-git-gui.sh "$<" "$@" ./GIT-GUI-BUILD-OPTIONS ./GIT-VERSION-FILE
205
206
XGETTEXT ?= xgettext
207
ifdef NO_MSGFMT
generate-git-gui.sh
new
+29
@@ -0,0 +1,29 @@
1
+#!/bin/sh
2
+
3
+set -e
4
+
5
+if test "$#" -ne 4
6
+then
7
+ echo >&2 "usage: $0 <INPUT> <OUTPUT> <BUILD_OPTIONS> <VERSION_FILE>"
8
+ exit 1
9
+fi
10
+
11
+INPUT="$1"
12
+OUTPUT="$2"
13
+BUILD_OPTIONS="$3"
14
+VERSION_FILE="$4"
15
+
16
+. "${BUILD_OPTIONS}"
17
+. "${VERSION_FILE}"
18
+
19
+rm -f "$OUTPUT" "$OUTPUT+"
20
+sed \
21
+ -e "1s|#!.*/sh|#!$SHELL_PATH|" \
22
+ -e "s|@@SHELL_PATH@@|$SHELL_PATH|" \
23
+ -e "1,30s|^ exec wish | exec '$TCLTK_PATH' |" \
24
+ -e "s|@@GITGUI_VERSION@@|$GITGUI_VERSION|g" \
25
+ -e "s|@@GITGUI_RELATIVE@@|$GITGUI_RELATIVE|" \
26
+ -e "${GITGUI_RELATIVE}s|@@GITGUI_LIBDIR@@|$GITGUI_LIBDIR|" \
27
+ "$INPUT" >"$OUTPUT"+
28
+chmod +x "$OUTPUT"+
29
+mv "$OUTPUT"+ "$OUTPUT"