Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=83d25ce5edadab1af4a0126fd1e1afa6fa0bb01b

commit 83d25ce5edadab1af4a0126fd1e1afa6fa0bb01b
Author: Michel Hermier <[email protected]>
Date:   Sat Dec 8 18:29:46 2012 +0100

scripts/makepkg

* Make makepkg have a usage command.

diff --git a/scripts/makepkg b/scripts/makepkg
index 3fb9980..b854436 100755
--- a/scripts/makepkg
+++ b/scripts/makepkg
@@ -1198,11 +1198,10 @@ repoman_loadconfig() {
fi
}

-makepkg_usage() {
+makepkg_build_usage() {
$ECHO "makepkg"
$ECHO
-       $ECHO "Usage: $0 [COMMAND] [OPTIONS] [VARIABLE=VALUE]..."
-       $ECHO "Command can be any of the following: build(default), ccache."
+       $ECHO "Usage: $0 [build] [OPTIONS] [VARIABLE=VALUE]..."
$ECHO
$ECHO "Options for build command:"
$ECHO "  -a, --searchdeps Search for package dependencies automatically"
@@ -1267,7 +1266,7 @@ makepkg_parseargs() {
-f|--force)             FORCE=1 ;;
-g|--gensha1)           GENSHA1=1 ;;
-G|--wrtsha1)           WRITESHA1=1 ;;
-               -h|--help)              makepkg_usage; exit 0 ;;
+               -h|--help)              makepkg_build_usage; exit 0 ;;
-i|--install)           INSTALL=1 ;;
-j)                     export MAKEFLAGS="-j$2"; consumed=2 ;;
-l)                     DOWNLOAD="$2"; consumed=2 ;;
@@ -1295,7 +1294,7 @@ makepkg_parseargs() {
# special options
--)                     shift; break ;; # End of options
#               -*=*)                   # IMPLEMENT ME: Assigned option support
-               --*|-?)                 makepkg_usage; exit 1 ;;
+               --*|-?)                 makepkg_build_usage; exit 1 ;;
-*)                     # Combined short options
split="$1"
shift
@@ -1456,7 +1455,7 @@ makepkg_prepare_sources() {
msg "Sources are ready."
}

-makepkg_build() {
+_makepkg_build() {
if [ "$NOBUILD" -eq 1 ]; then
return 0
fi
@@ -1538,8 +1537,8 @@ makepkg_document() {
\) -exec install -pm 644 '{}' pkg/usr/share/doc/$pkgname-$pkgver/ \;
}

-makepkg_build_cmd() {
-       declare -r ARGLIST=$@
+makepkg_build() {
+       declare -r ARGLIST=$@ startdir="$(pwd)"
makepkg_parseargs "$@"
repoman_loadconfig

@@ -1590,7 +1589,7 @@ makepkg_build_cmd() {
cmd+=(makepkg_ccache)
fi

-               "${cmd[@]}" makepkg_build
+               "${cmd[@]}" _makepkg_build
fi

cd "$startdir"
@@ -2927,6 +2926,26 @@ makepkg_shell() {
return $?
}

+_makepkg_init() {
+       local i
+
+       declare -agr _makepkg_commands=(
+               build
+               buildscript
+               ccache
+               chroot
+               chroot_clean
+               chroot_create
+               chroot_list
+               chroot_lock
+               chroot_unlock
+               depends
+               fakeroot
+               file_lock
+               shell
+       )
+}
+
_makepkg_loadconfig() {
local variable

@@ -3000,23 +3019,58 @@ _makepkg_loadconfig() {
return 0
}

+makepkg_usage() {
+       local i
+
+       $ECHO "makepkg"
+       $ECHO
+       $ECHO "Usage: $0 [COMMAND] [COMMAND_OPTION]..."
+       $ECHO "Command can be any of the following:"
+       for i in "${_makepkg_commands[@]}"; do
+       $ECHO " - $i"
+       done
+       $ECHO
+       $ECHO "Perform the makepkg command, 'build' if none is provided."
+       $ECHO "To see COMMAND syntax and options, do: $0 COMMAND --help"
+}
+
_makepkg() {
-       case "$1" in
-       build)          shift; makepkg_build_cmd "$@" ;;
-       buildscript)    shift; makepkg_buildscript "$@" ;;
-       ccache)         shift; makepkg_ccache "$@" ;;
-       chroot)         shift; makepkg_chroot "$@" ;;
-       chroot_clean)   shift; makepkg_chroot_clean "$@" ;;
-       chroot_create)  shift; makepkg_chroot_create "$@" ;;
-       chroot_list)    shift; makepkg_chroot_list "$@" ;;
-       chroot_lock)    shift; makepkg_chroot_lock "$@" ;;
-       chroot_unlock)  shift; makepkg_chroot_unlock "$@" ;;
-       depends)        shift; makepkg_depends "$@" ;;
-       fakeroot)       shift; makepkg_fakeroot "$@" ;;
-       file_lock)      shift; makepkg_file_lock "$@" ;;
-       shell)          shift; makepkg_shell "$@" ;;
-       *)              makepkg_build_cmd "$@" ;;
-       esac
+       local _command
+       local consumed
+
+       while [ $# -gt 0 ]; do
+               consumed=1
+               case "$1" in
+               -h|--help)              makepkg_usage; return 0 ;;
+# special options
+               --)                     shift; break ;; # End of options
+               --*|-?)                 makepkg_usage; return 1 ;;
+               -*)                     # Combined short options
+                                       split="$1"
+                                       shift
+                                       set -- \
+                                               "$(echo "$split}" | cut -c -2)" 
\
+                                               "-$(echo "${split}" | cut -c 
3-)" \
+                                               "$@"
+                                       continue ;;
+               *=*)                    export "$1" ;;
+               *)                      break ;; # End of options
+               esac
+               if ! shift "$consumed"; then
+                       consumed=$(($consumed - 1))
+                       error "Option $1 expects $consumed argument(s)"
+                       return 1
+               fi
+       done
+
+       if [ $# -gt 0 ]; then
+               if in_array "$1" "${_makepkg_commands[@]}"; then
+                       _command="$1"
+                       shift
+               fi
+       fi
+
+       "makepkg_${_command:-"build"}" "$@" # Defauld command is build
return $?
}

@@ -3130,6 +3184,7 @@ _P_subpkgsfixes+=(_pkg_check_hicolor)
#

if [ ! -v PS1 ]; then
+       _makepkg_init
_makepkg_loadconfig
_makepkg "$@"
fi
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to