mirror of
https://github.com/moparisthebest/pacman
synced 2024-11-11 11:55:12 -05:00
f61f075b1c
This requires an ugly amount of reworking of how pacman-key handles options. The change simply to avoid passing keys, files, and directories as arguments to options, but to leave them as arguments to the overall program. This is reasonable since pacman-key limits the user to essentially one operation per invocation (like pacman). Since we now pass around the positional parameters to the various operations, we can add some better sanity checking. Each operation is responsible for testing input and making sure it can operate properly, otherwise it throws an error and exits. The doc is updated to reflect this, and uses similar verbiage as pacman, describing the non-option arguments now passed to pacman-key as targets. Similar to the doc, --help is reorganized to separate operations and options and remove argument tokens from operations. Signed-off-by: Dave Reisner <dreisner@archlinux.org>
121 lines
3.0 KiB
Makefile
121 lines
3.0 KiB
Makefile
# enforce that all scripts have a --help and --version option
|
|
AUTOMAKE_OPTIONS = std-options
|
|
|
|
SUBDIRS = po
|
|
|
|
bin_SCRIPTS = \
|
|
$(OURSCRIPTS)
|
|
|
|
OURSCRIPTS = \
|
|
makepkg \
|
|
pacman-db-upgrade \
|
|
pacman-key \
|
|
pacman-optimize \
|
|
pkgdelta \
|
|
rankmirrors \
|
|
repo-add
|
|
|
|
EXTRA_DIST = \
|
|
makepkg.sh.in \
|
|
pacman-db-upgrade.sh.in \
|
|
pacman-key.sh.in \
|
|
pacman-optimize.sh.in \
|
|
pkgdelta.sh.in \
|
|
rankmirrors.sh.in \
|
|
repo-add.sh.in \
|
|
$(LIBRARY)
|
|
|
|
LIBRARY = \
|
|
library/output_format.sh \
|
|
library/parseopts.sh \
|
|
library/parse_options.sh
|
|
|
|
# Files that should be removed, but which Automake does not know.
|
|
MOSTLYCLEANFILES = $(bin_SCRIPTS)
|
|
|
|
if USE_GIT_VERSION
|
|
GIT_VERSION := $(shell sh -c 'git describe --abbrev=4 --dirty | sed s/^v//')
|
|
REAL_PACKAGE_VERSION = $(GIT_VERSION)
|
|
else
|
|
REAL_PACKAGE_VERSION = $(PACKAGE_VERSION)
|
|
endif
|
|
|
|
#### Taken from the autoconf scripts Makefile.am ####
|
|
edit = sed \
|
|
-e 's|@localedir[@]|$(localedir)|g' \
|
|
-e 's|@sysconfdir[@]|$(sysconfdir)|g' \
|
|
-e 's|@localstatedir[@]|$(localstatedir)|g' \
|
|
-e 's|@pkgdatadir[@]|$(pkgdatadir)|g' \
|
|
-e 's|@prefix[@]|$(prefix)|g' \
|
|
-e '1s|!/bin/bash|!$(BASH_SHELL)|g' \
|
|
-e 's|@PACKAGE_VERSION[@]|$(REAL_PACKAGE_VERSION)|g' \
|
|
-e 's|@PACKAGE_BUGREPORT[@]|$(PACKAGE_BUGREPORT)|g' \
|
|
-e 's|@PACKAGE_NAME[@]|$(PACKAGE_NAME)|g' \
|
|
-e 's|@BUILDSCRIPT[@]|$(BUILDSCRIPT)|g' \
|
|
-e 's|@SIZECMD[@]|$(SIZECMD)|g' \
|
|
-e 's|@SEDINPLACE[@]|$(SEDINPLACE)|g' \
|
|
-e 's|@DUPATH[@]|$(DUPATH)|g' \
|
|
-e 's|@SCRIPTNAME[@]|$@|g' \
|
|
-e 's|@configure_input[@]|Generated from $@.sh.in; do not edit by hand.|g'
|
|
|
|
## All the scripts depend on Makefile so that they are rebuilt when the
|
|
## prefix etc. changes. Use chmod -w to prevent people from editing the
|
|
## wrong file by accident.
|
|
$(OURSCRIPTS): Makefile
|
|
$(AM_V_at)$(RM) $@
|
|
$(AM_V_GEN)test -f $(srcdir)/$@.sh.in && m4 -P -I $(srcdir) $(srcdir)/$@.sh.in | $(edit) >$@
|
|
$(AM_V_at)chmod +x,a-w $@
|
|
|
|
makepkg: \
|
|
$(srcdir)/makepkg.sh.in \
|
|
$(srcdir)/library/parseopts.sh
|
|
|
|
pacman-db-upgrade: \
|
|
$(srcdir)/pacman-db-upgrade.sh.in \
|
|
$(srcdir)/library/output_format.sh
|
|
|
|
pacman-key: \
|
|
$(srcdir)/pacman-key.sh.in \
|
|
$(srcdir)/library/output_format.sh \
|
|
$(srcdir)/library/parseopts.sh
|
|
|
|
pacman-optimize: \
|
|
$(srcdir)/pacman-optimize.sh.in \
|
|
$(srcdir)/library/output_format.sh
|
|
|
|
pkgdelta: \
|
|
$(srcdir)/pkgdelta.sh.in \
|
|
$(srcdir)/library/output_format.sh
|
|
|
|
rankmirrors: $(srcdir)/rankmirrors.sh.in
|
|
|
|
repo-add: \
|
|
$(srcdir)/repo-add.sh.in \
|
|
$(srcdir)/library/output_format.sh
|
|
|
|
repo-remove: $(srcdir)/repo-add.sh.in
|
|
$(RM) repo-remove
|
|
$(LN_S) repo-add repo-remove
|
|
|
|
repo-elephant: $(srcdir)/repo-add.sh.in
|
|
$(RM) repo-elephant
|
|
$(LN_S) repo-add repo-elephant
|
|
|
|
install-data-hook:
|
|
cd $(DESTDIR)$(bindir) && \
|
|
$(RM) repo-elephant && \
|
|
( $(LN_S) repo-add repo-elephant || \
|
|
ln repo-add repo-elephant || \
|
|
cp repo-add repo-elephant )
|
|
cd $(DESTDIR)$(bindir) && \
|
|
$(RM) repo-remove && \
|
|
( $(LN_S) repo-add repo-remove || \
|
|
ln repo-add repo-remove || \
|
|
cp repo-add repo-remove )
|
|
|
|
uninstall-hook:
|
|
cd $(DESTDIR)$(bindir) && \
|
|
$(RM) repo-remove repo-elephant
|
|
|
|
# vim:set ts=2 sw=2 noet:
|