summaryrefslogtreecommitdiffstats
path: root/bin/quilt.in
blob: d1a686701f300b229ebd6c5038b0111731542b80 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/bin/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.

usage()
{

	echo "Usage: quilt command [-h] ..." >&2
	#echo "Commands are:" $(
	#	local command
	#	for command in @QUILT@/*
	#	do
	#		if [ -f "$command" -a -x "$command" ]
	#		then
	#			echo "${command#@QUILT@/}"
	#		fi
	#	done \
	#	| sort
	#)
	echo "Commands are:"
	quilt_commands \
	| sort \
	| column | column -t \
	| sed -e 's/^/\t/'
	exit 1
}

quilt_commands()
{
	local command
	for command in @QUILT@/*
	do
		if [ -f "$command" -a -x "$command" ]
		then
			echo ${command##@QUILT@/}
		fi
	done
}

for arg in "$@"
do
	case $arg in
	[^-]*)
		if [ -z "$command" ]
		then
			command="$arg"
		else
			args[${#args[@]}]="$arg"
		fi ;;
	*)
		args[${#args[@]}]="$arg" ;;
	esac
done

if ! [ -f "@QUILT@/$command" -a -x "@QUILT@/$command" ]
then
	if [ -n "$command" ]
	then
		for arg in $(quilt_commands)
		do
			case "$arg" in
			$command*)
				commands[${#commands[@]}]="$arg"
				;;
			esac
		done
	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 arg args

#. @QUILT@/$command
bash -c ". @QUILT@/$command" "quilt ${command##*/}" "$@"