summaryrefslogtreecommitdiff
path: root/layman
blob: c3457db31da2254d6aa1b2aabf8f330ac3515043 (plain)
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
# Gentoo Linux Layman Command Completion
#
# $Id$
#
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
#
# Originally licensed as 'public-domain'
# Originally written by: Peter "Link" Sterk <link@penguindevelopment.org>


have layman && {
	_layman()
	{
		local cur prev opts r_overlays l_overlays
		opts="-a --add -d --delete -s --sync -i --info -S --sync-all -L --list \
				 -l --list-local -f --fetch -n --nofetch -p --priority -c --config \
			 -o --overlays -v --verbose -q --quiet -N --nocolor -Q --quietness \
			 -k --nocheck --debug --debug-level --debug-verbose --debug-methods \
			 --debug-classes --debug-variables --debug-class-vars --debug-nocolor"

		r_overlays="$(layman -LkN 2>/dev/null | grep '(source' | awk '{print $2}')"
		l_overlays="$(layman -lkN 2>/dev/null | grep '(source' | awk '{print $2}')"
		ls_overlays="${l_overlays} ALL"

		COMPREPLY=()

		cur="${COMP_WORDS[COMP_CWORD]}"
		prev="${COMP_WORDS[COMP_CWORD-1]}"

		if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]]
		then
			COMPREPLY=($(compgen -W "${opts}" -- ${cur}))
			return 0
		fi

		case "${prev}" in
			-a|--add)
				COMPREPLY=($(compgen -W "${r_overlays}" -- ${cur}))
				return 0
			;;
			-d|--delete)
				COMPREPLY=($(compgen -W "${l_overlays}" -- "${cur}"))
				return 0
			;;
			-s|--sync)
				COMPREPLY=($(compgen -W "${ls_overlays}" -- "${cur}"))
				return 0
			;;
			-i|--info)
				COMPREPLY=($(compgen -W "${r_overlays}" -- "${cur}"))
				return 0
			;;
			-p|--priority)
				COMPREPLY=($(compgen -W "$(seq 0 100)" -- "${cur}"))
				return 0
			;;
			-Q|--quietness)
				COMPREPLY=($(compgen -W "$(seq 0 4)" -- "${cur}"))
				return 0
			;;
			--debug-level)
				COMPREPLY=($(compgen -W "$(seq 0 10)" -- "${cur}"))
				return 0
			;;
			--debug-verbose)
				COMPREPLY=($(compgen -W "$(seq 1 3)" -- "${cur}"))
				return 0
			;;
		esac
	}
	complete -F _layman layman
}

# vim: set ft=sh tw=80 sw=4 et :