[pacman-dev] [PATCH] Generalise makepkg-wrapper to handle any script using libmakepkg
Signed-off-by: Allan McRae <allan@archlinux.org> --- scripts/Makefile.am | 27 +++++++++++++++--------- scripts/{makepkg-wrapper.sh.in => wrapper.sh.in} | 4 ++-- 2 files changed, 19 insertions(+), 12 deletions(-) rename scripts/{makepkg-wrapper.sh.in => wrapper.sh.in} (84%) diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 92cd50c..9c9fd9f 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -7,9 +7,9 @@ SUBDIRS = po bin_SCRIPTS = \ $(OURSCRIPTS) \ makepkg-template \ - makepkg-wrapper \ repo-remove \ - repo-elephant + repo-elephant \ + $(WRAPPER) OURSCRIPTS = \ makepkg \ @@ -103,6 +103,9 @@ LIBMAKEPKG_DIST = \ $(LIBMAKEPKG) \ $(addsuffix .in, $(LIBMAKEPKG_IN)) +WRAPPER = \ + makepkg-wrapper + COMPLETION_IN = \ completion/bash_completion \ completion/zsh_completion @@ -175,7 +178,7 @@ all-am: $(COMPLETION_IN) makepkg: \ $(srcdir)/makepkg.sh.in \ - $(srcdir)/makepkg-wrapper.sh.in \ + $(srcdir)/wrapper.sh.in \ $(srcdir)/library/parseopts.sh \ $(LIBMAKEPKG_IN) @@ -213,18 +216,20 @@ repo-elephant: $(srcdir)/repo-add.sh.in $(AM_V_at)$(RM) repo-elephant $(AM_V_at)$(LN_S) repo-add repo-elephant -makepkg-wrapper: \ - makepkg +.SECONDEXPANSION: +$(WRAPPER): \ + $$(subst -wrapper,,$$@) $(AM_V_at)$(MKDIR_P) .lib - $(AM_V_at)mv -f makepkg .lib + $(AM_V_at)mv -f $(subst -wrapper,,$@) .lib $(AM_V_at)$(RM) $@ $(AM_V_GEN)sed \ -e "s|@PWD[@]|$$(pwd)|" \ + -e "s|@PROGNAME[@]|$(subst -wrapper,,$@)|g" \ -e '1s|!/bin/bash|!$(BASH_SHELL)|g' \ - $(srcdir)/$@.sh.in > $@ + $(srcdir)/wrapper.sh.in > $@ $(AM_V_at)chmod +x,a-w $@ - $(AM_V_at)$(LN_S) makepkg-wrapper makepkg + $(AM_V_at)$(LN_S) $@ $(subst -wrapper,,$@) install-data-local: $(MKDIR_P) $(DESTDIR)$(sysconfdir)/bash_completion.d/ @@ -237,8 +242,10 @@ uninstall-local: $(RM) $(DESTDIR)$(datarootdir)/zsh/site-functions/_pacman install-exec-hook: - cd $(DESTDIR)$(bindir) && \ - $(RM) makepkg makepkg-wrapper + for wrapper in $(WRAPPER); do \ + cd $(DESTDIR)$(bindir) && \ + $(RM) $$wrapper; \ + done $(INSTALL) .lib/makepkg $(DESTDIR)$(bindir)/makepkg for dir in $(LIBMAKEPKGDIRS); do \ $(MKDIR_P) $(DESTDIR)$(libmakepkgdir)/$$dir; \ diff --git a/scripts/makepkg-wrapper.sh.in b/scripts/wrapper.sh.in similarity index 84% rename from scripts/makepkg-wrapper.sh.in rename to scripts/wrapper.sh.in index 6e71314..2039c2a 100644 --- a/scripts/makepkg-wrapper.sh.in +++ b/scripts/wrapper.sh.in @@ -1,6 +1,6 @@ #!/bin/bash # -# makepkg - a wrapper for running the real makepkg in the source tree +# @PROGNAME@ - a wrapper for running the real @PROGNAME@ in the source tree # # Copyright (c) 2013-2016 Pacman Development Team <pacman-dev@archlinux.org> # @@ -20,4 +20,4 @@ DIR="@PWD@" -LIBRARY="$DIR"/libmakepkg exec "$DIR"/.lib/makepkg "$@" +LIBRARY="$DIR"/libmakepkg exec "$DIR"/.lib/@PROGNAME@ "$@" -- 2.10.0
participants (1)
-
Allan McRae