summaryrefslogtreecommitdiff
blob: 5199169334797c9aa0c5a9fb5810a808d4e6df11 (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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=5
inherit eutils

case ${PV} in
99999999*)
	LIVE=:
	EGIT_REPO_URI="git://github.com/zsh-users/${PN}.git"
	inherit git-r3
	PROPERTIES="live"
	KEYWORDS=""
	SRC_URI="";;
*)
	LIVE=false
	RESTRICT="mirror"
	TARBALL_VERSION='0.12.0'
	SRC_URI="https://github.com/zsh-users/${PN}/archive/${TARBALL_VERSION}.tar.gz -> ${PN}-${PV}.tar.gz"
	KEYWORDS="~amd64 ~x86"
	S="${WORKDIR}/${PN}-${TARBALL_VERSION}"
esac

DESCRIPTION="Additional completion definitions for Zsh"
HOMEPAGE="https://gentoo.org/zsh-users/zsh-completions/"
LICENSE="ZSH"
SLOT="0"
if ${LIVE}
then	DEPEND=""
else	DEPEND="completion_pip? ( !dev-python/pip[zsh-completion] )"
fi

IUSE=""
declare -a FILES
FILES=()
declare -A USEFILE FILEINDEX
USEFILE=()
FILEINDEX=()
used_value() {
	case ${!1} in
	'*'*)
		eval ${1}=\${${1}#?}
		${LIVE};;
	'/'*)
		eval ${1}=\${${1}#?}
		! ${LIVE};;
	esac
}
calculate_data() {
	local comp curr currfile used
	for comp
	do	curr="${comp%% *}"
		used_value curr || continue
		case ${curr} in
		'+'*)
			curr="completion_${curr#?}"
			IUSE="${IUSE}${IUSE:+ }+${curr}";;
		*)
			curr="completion_${curr}"
			IUSE="${IUSE}${IUSE:+ }${curr}";;
		esac
		for currfile in ${comp#* }
		do	used_value currfile
			used=${?}
			USEFILE["${currfile}"]="${curr}"
			[[ -z ${FILEINDEX["${currfile}"]} ]] || die "${currfile} listed twice"
			[ ${used} -ne 0 ] && continue
			FILEINDEX["${currfile}"]="${#FILES[@]}"
			FILES+=("${currfile}")
		done
	done
}
calculate_data \
	'+Android _adb _android _emulator' \
	'+Google _google' \
	'+Unix _cmake _dzen2 _logger _nl _ps _shutdown _watch _xinput' \
	'+database _redis-cli _pgsql_utils' \
	'+dev _artisan _choc _console _gradle _geany _phing _manage.py _mvn _pear _play _symfony _thor _vagrant _veewee' \
	'+disk _sdd _smartmontools _srm' \
	'+distribute _celery /_envoy _fab _glances _kitchen _knife _mina _mussh' \
	'+filesystem _zfs' \
	'+git _git-flow _git-pulls' \
	'+hardware _optirun _perf _primus' \
	'+haskell _cabal _ghc' \
	'+managers _bower _brew *_cask _debuild _lein _pactree _pkcon _port _yaourt' \
	'+multimedia _id3 _id3v2 _showoff' \
	'+net _dget _dhcpcd _httpie _iw _mosh _rfkill _socat _ssh-copy-id _vpnc _vnstat' \
	'+nfs _exportfs' \
	'+perl _cpanm' \
	'/+pip _pip' \
	'+python _bpython _pygmentize _setup.py' \
	'+ruby _bundle _cap _ditz _gas _gem _gist _github _git-wtf _jekyll _lunchy _rails _rspec _rubocop _rvm' \
	'+search _ack _ag _jq' \
	'+session _atach _teamocil _tmuxinator _wemux' \
	'+subtitles _language_codes _periscope _subliminal' \
	'+virtualization _boot2docker *_docker-machine /_docker _virtualbox _virsh' \
	'+web _coffee _composer _docpad _drush _heroku *_hledger _jonas _jmeter _jmeter-plugins _lunar _middleman _node _nvm _ralio _salt _sbt _scala _svm'

src_prepare() {
	epatch_user
}

src_install() {
	insinto /usr/share/zsh/site-functions
	local i j u
	for i in src/*
	do	j=${i#src/}
		u=${USEFILE["${j}"]}
		if [ -z "${u}" ]
		then	elog "installing unknown completion ${i#*/}"
				doins "${i}"
				continue
		fi
		! use "${u}" || doins "${i}"
		u=${FILEINDEX["${j}"]}
		FILES[${u}]=
	done
	for i in ${FILES[*]}
	do	elog "listed file ${i} not found"
	done
	dodoc README.md zsh-completions-howto.org
}