#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. # unset posix strict conformance variable since patch cannot be run # non-interactively when it's set. unset POSIXLY_CORRECT # unset GREP_OPTIONS as it's quite easy to break quilt with uncommon options # see http://bugs.debian.org/715563 unset GREP_OPTIONS export TEXTDOMAIN=quilt export TEXTDOMAINDIR=@LOCALEDIR@ : ${QUILT_DIR=@QUILT_DIR@} export QUILT_DIR if [ -z "$QUILTRC" ] then for QUILTRC in $HOME/.quiltrc @ETCDIR@/quilt.quiltrc; do [ -e $QUILTRC ] && break done export QUILTRC fi # Support compatibility layer if [ -d $QUILT_DIR/compat ] then export PATH="$QUILT_DIR/compat:$PATH" fi usage() { echo $"Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." echo $" quilt --version" echo $"Commands are:" quilt_commands \ | sort \ | column | column -t \ | sed -e $'s/^/\t/' echo $" Global options: --trace Runs the command in bash trace mode (-x). For internal debugging. --quiltrc file Use the specified configuration file instead of ~/.quiltrc (or @ETCDIR@/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf documentation for details about its possible contents. The special value \"-\" causes quilt not to read any configuration file. --version Print the version number and exit immediately." exit 1 } quilt_commands() { local command for command in $QUILT_DIR/* do if [ -f "$command" -a -x "$command" ] then echo ${command##$QUILT_DIR/} fi done } if [ $# -eq 1 -a "$1" == "--version" ] then echo '@VERSION@' exit fi BASH_OPTS= while [ $# -ne 0 ] do case $1 in [^-]*) if [ -z "$command" ] then command=$1 else args[${#args[@]}]=$1 fi ;; # Use a resource file other than ~/.quiltrc --quiltrc=*) QUILTRC=${1#--quiltrc=} [ "$QUILTRC" = - ] && unset QUILTRC ;; --quiltrc) QUILTRC=$2 [ "$QUILTRC" = - ] && unset QUILTRC shift ;; # Trace execution of commands --trace*) BASH_OPTS="${BASH_OPTS:+$BASH_OPTS }-x" case "${1:7}" in '') ;; =verbose) BASH_OPTS="${BASH_OPTS:+$BASH_OPTS }-v" ;; *) command= break ;; esac ;; *) args[${#args[@]}]=$1 ;; esac shift done if ! [ -f "$QUILT_DIR/$command" -a -x "$QUILT_DIR/$command" ] then if [ -n "$command" ] then for arg in $(quilt_commands) do case "$arg" in $command*) commands[${#commands[@]}]=$arg ;; esac done unset arg fi if [ ${#commands[@]} -eq 0 ] then usage elif [ ${#commands[@]} -eq 1 ] then command=${commands[0]} unset commands else echo "$command :" "${commands[@]}" >&2 exit 1 fi fi set -- "${args[@]}" unset args export QUILT_COMMAND="${command##*/}" bash $BASH_OPTS -c ". $QUILT_DIR/$command" "quilt ${command##*/}" "$@"