summaryrefslogtreecommitdiff
path: root/checkpkg.in
diff options
context:
space:
mode:
Diffstat (limited to 'checkpkg.in')
-rw-r--r--checkpkg.in96
1 files changed, 52 insertions, 44 deletions
diff --git a/checkpkg.in b/checkpkg.in
index f40989d..aa862c5 100644
--- a/checkpkg.in
+++ b/checkpkg.in
@@ -6,23 +6,6 @@ shopt -s extglob
m4_include(lib/common.sh)
-# Source makepkg.conf; fail if it is not found
-if [[ -r '/etc/makepkg.conf' ]]; then
- # shellcheck source=makepkg-x86_64.conf
- source '/etc/makepkg.conf'
-else
- die '/etc/makepkg.conf not found!'
-fi
-
-# Source user-specific makepkg.conf overrides
-if [[ -r "${XDG_CONFIG_HOME:-$HOME/.config}/pacman/makepkg.conf" ]]; then
- # shellcheck source=/dev/null
- source "${XDG_CONFIG_HOME:-$HOME/.config}/pacman/makepkg.conf"
-elif [[ -r "$HOME/.makepkg.conf" ]]; then
- # shellcheck source=/dev/null
- source "$HOME/.makepkg.conf"
-fi
-
usage() {
cat <<- _EOF_
Usage: ${BASH_SOURCE[0]##*/} [OPTIONS]
@@ -35,40 +18,65 @@ usage() {
list for both packages and a library list for both packages.
OPTIONS
- -r, --rmdir Remove the temporary directory
- -w, --warn Print a warning in case of differences
- -h, --help Show this help text
+ -r, --rmdir Remove the temporary directory
+ -w, --warn Print a warning in case of differences
+ -M, --makepkg-config Set an alternate makepkg configuration file
+ -h, --help Show this help text
_EOF_
}
RMDIR=0
WARN=0
+MAKEPKG_CONF=/etc/makepkg.conf
+
+# option checking
+while (( $# )); do
+ case $1 in
+ -h|--help)
+ usage
+ exit 0
+ ;;
+ -r|--rmdir)
+ RMDIR=1
+ shift
+ ;;
+ -w|--warn)
+ WARN=1
+ shift
+ ;;
+ -M|--makepkg-config)
+ MAKEPKG_CONF="$2"
+ shift 2
+ ;;
+ --)
+ shift
+ break
+ ;;
+ -*,--*)
+ die "invalid argument: %s" "$1"
+ ;;
+ *)
+ break
+ ;;
+ esac
+done
-OPT_SHORT='rwh'
-OPT_LONG=('rmdir' 'warn' 'help')
-if ! parseopts "$OPT_SHORT" "${OPT_LONG[@]}" -- "$@"; then
- exit 1
+# Source makepkg.conf; fail if it is not found
+if [[ -r "${MAKEPKG_CONF}" ]]; then
+ # shellcheck source=makepkg-x86_64.conf
+ source "${MAKEPKG_CONF}"
+else
+ die "${MAKEPKG_CONF} not found!"
+fi
+
+# Source user-specific makepkg.conf overrides
+if [[ -r "${XDG_CONFIG_HOME:-$HOME/.config}/pacman/makepkg.conf" ]]; then
+ # shellcheck source=/dev/null
+ source "${XDG_CONFIG_HOME:-$HOME/.config}/pacman/makepkg.conf"
+elif [[ -r "$HOME/.makepkg.conf" ]]; then
+ # shellcheck source=/dev/null
+ source "$HOME/.makepkg.conf"
fi
-set -- "${OPTRET[@]}"
-
-while :; do
- case $1 in
- -r|--rmdir)
- RMDIR=1
- ;;
- -w|--warn)
- WARN=1
- ;;
- -h|--help)
- usage
- exit 0
- ;;
- --)
- shift; break
- ;;
- esac
- shift
-done
if [[ ! -f PKGBUILD ]]; then
die 'This must be run in the directory of a built package.'