[PATCH] Allow command abbreviation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



quilt allow us to type

    quilt ser

instead of

    quilt series

this patch does the same thing.
---
 guilt |   39 ++++++++++++++++++++++++++++++++-------
 1 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/guilt b/guilt
index f5a55ff..8072509 100755
--- a/guilt
+++ b/guilt
@@ -6,29 +6,54 @@
 GUILT_VERSION="0.20"
 GUILT_NAME="Buddy Holly"
 
+function guilt_commands
+{
+	local command
+	for command in $0-*
+	do
+		if [ -f "$command" -a -x "$command" ]
+		then
+			echo ${command##$0-}
+		fi
+	done
+}
+
 if [ `basename $0` = "guilt" ]; then
 	# being run as standalone
 
 	# by default, we shouldn't fail
-	fail=0
+	cmd=
 
 	if [ $# -ne 0 ]; then
 		# take first arg, and try to execute it
 
-		cmd="$1"
+		arg="$1"
 		dir=`dirname $0`
 
-		if [ ! -x "$dir/guilt-$cmd" ]; then
-			echo "Command $cmd not found" >&2
-			echo "" >&2
-			fail=1
+		if [ -x "$dir/guilt-$arg" ]; then
+			cmd=$arg
 		else
+			# might be a short handed
+			for command in $(guilt_commands); do
+				case $command in
+				$arg*)
+					if [ -x "$dir/guilt-$command" ]; then
+						cmd=$command
+					fi
+					;;
+				esac
+			done
+		fi
+		if [ $cmd ]; then
 			shift
 			exec "$dir/guilt-$cmd" "$@"
 
 			# this is not reached because of the exec
 			echo "Exec failed! Something is terribly wrong!" >&2
 			exit 1
+		else
+			echo "Command $arg not found" >&2
+			echo "" >&2
 		fi
 	fi
 
@@ -48,7 +73,7 @@ if [ `basename $0` = "guilt" ]; then
 	echo -e "\tguilt push"
 
 	# now, let's exit
-	exit $fail
+	exit 1
 fi
 
 ########
-- 
1.5.0.1.236.g6c09

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]