Jeff King <[email protected]> writes:
> define cmd_munge_script
> $(RM) $@ $@+ && \
> +{ \
> +includes="$(filter MAKE/%.sh,$^)"; \
> +if ! test -z "$$includes"; then \
> + cat $$includes; \
> +fi && \
> sed -e '1s|#!.*/sh|#!$(call sqi,$(SHELL_PATH))|' \
> -e 's|@SHELL_PATH@|$(call sqi,$(SHELL_PATH))|' \
> - -e 's|@@DIFF@@|$(call sqi,$(DIFF))|' \
> -e 's|@@LOCALEDIR@@|$(call sqi,$(localedir))|g' \
> -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
> -e 's/@@USE_GETTEXT_SCHEME@@/$(USE_GETTEXT_SCHEME)/g' \
> -e $(BROKEN_PATH_FIX) \
> -e 's|@@GITWEBDIR@@|$(call sqi,$(gitwebdir))|g' \
> -e 's|@@PERL@@|$(call sqi,$(PERL_PATH))|g' \
> - [email protected] >$@+
> + [email protected]; \
> +} >$@+
> endef
Sorry, but I am not quite sure what is going on here.
- if $includes does not exist, cat $includes will barf but that is
OK;
- if $includes is empty, there is no point running cat so that is
OK;
- if $includes is not empty, we want to cat.
And then after emitting that piece, we start processing the *.sh
source file, replacing she-bang line?
> diff --git a/git-sh-setup.sh b/git-sh-setup.sh
> index fffa3c7..627d289 100644
> --- a/git-sh-setup.sh
> +++ b/git-sh-setup.sh
> @@ -285,7 +285,7 @@ clear_local_git_env() {
> # remove lines from $1 that are not in $2, leaving only common lines.
> create_virtual_base() {
> sz0=$(wc -c <"$1")
> - @@DIFF@@ -u -La/"$1" -Lb/"$1" "$1" "$2" | git apply --no-add
> + $MAKE_DIFF -u -La/"$1" -Lb/"$1" "$1" "$2" | git apply --no-add
> sz1=$(wc -c <"$1")
This would mean that after this mechanism is extensively employed
throughout our codebase, any random environment variable the user
has whose name happens to begin with "MAKE_" will interfere with us
(rather, we will override such a variable while we run). Having to
carve out our own namespace in such a way is OK, but we would want
to see that namespace somewhat related to the name of our project,
not to the name of somebody else's like "make", no?
>
> # If we do not have enough common material, it is not
> diff --git a/script/mksh b/script/mksh
> new file mode 100644
> index 0000000..d41e77a
> --- /dev/null
> +++ b/script/mksh
> @@ -0,0 +1,4 @@
> +#!/bin/sh
> +
> +name=$1; shift
> +printf "MAKE_%s='%s'\n" "$name" "$(sed "s/'/'\\''/g")"
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html