#compdef qatom qcheck qdepends qfile qgrep qimlate qlist qlop qsearch qsize quse

# Author: baptux <baptiste.daroussin@gmail.com>
#
#
local common_args PORTDIR
var=PORTDIR
[[ -z ${(P)var} && -r /etc/make.conf ]] &&
local $var="`. /etc/make.conf 2>/dev/null; echo ${(P)var}`"
[[ -z ${(P)var} && -r /etc/make.globals ]] &&
local $var="`. /etc/make.globals 2>/dev/null; echo ${(P)var}`"
common_args=(
	{'(--verbose)-v','(-v)--verbose'}'[Make a lot of noise]' \
	{'(--quiet)-q','(-q)--quiet'}'[Tighter output; suppress warnings]' \
	{'(--nocolor)-C','(-C)--nocolor'}'[Do not output color]' \
	{'(--help)-h','(-h)--help'}'[Print this help and exit]' \
	{'(--version)-V','(-V)--version'}'[Print version and exit]' \
)
case $service in
qcheck)
	_arguments -s $common_args \
	{'(--all)-a','(-a)--all'}'[List all packages]' \
	{'(--update)-u','(-u)--update'}'[Update chksum and mtimes for packages]' \
  '*:packages:_gentoo_packages installed'
;;
qdepends)
	_arguments -s $common_args \
	{'(--depend)-d','(-d)--depend'}'[Show DEPEND info (default)]' \
	{'(--rdepend)-r','(-r)--rdepend'}'[Show RDEPEND info]' \
	{'(--pdepend)-p','(-p)--pdepend'}'[Show PDEPEND info]' \
	{'(--key)-k','(-k)--key'}'[User defined vdb key]' \
	{'(--query)-Q','(-Q)--query'}'[Query reverse deps]' \
	{'(--name-only)-N','(-N)--name-only'}'[Only show package name]' \
	{'(--all)-a','(-a)--all'}'[Show all DEPEND info]' \
  '*:packages:_gentoo_packages installed'
;;
qfile)
  _arguments -s $common_args \
	{'(--exact)-e','(-e)--exact'}'[Exact match]' \
	'*:filename:_files'
;;
qgrep)
  _arguments -s $common_args \
	{'(--invert-match)-I','(-I)--invert-match'}'[Select non-matching lines]' \
	{'(--ignore-case)-i','(-i)--ignore-case'}'[Ignore case distinctions]' \
	{'(--with-filename)-H','(-H)--with-filename'}'[Print the filename for each match]' \
	{'(--count)-c','(-c)--count'}'[Only print a count of matching lines per FILE]' \
	{'(--regexp)-e','(-e)--regexp'}'[Use PATTERN as a regular expression]' \
	'*:pattern::'
;;
qimlate)
	local arches allarches arch
	show_archs(){
		arches=(${(f)"$(<$PORTDIR/profiles/arch.list)"})
		allarches=($archs)
		for arch in $arches;do
			allarches=($allarches $arch)
		done
		_describe -t available-arches "arch" allarches 
	}
  _arguments -s $common_args \
	'*:arch:show_archs'
;;
qlist)
  _arguments -s $common_args \
	{'(--installed)-I','(-I)--installed'}'[Just show installed packages]' \
	{'(--slots)-S','(-S)--slots'}'[Display installed packages with slots]' \
	{'(--umap)-U','(-U)--umap'}'[Display installed packages with flags used]' \
	{'(--dups)-D','(-D)--dups'}'[Only show package dups]' \
	{'(--exact)-e','(-e)--exact'}'[Exact match (only CAT/PN or PN without PV)]' \
	{'(--all)-a','(-a)--all'}'[Show every installed package]' \
	{'(--dir)-d','(-d)--dir'}'[Only show directories]' \
	{'(--obj)-o','(-o)--obj'}'[Only show objects]' \
	{'(--sym)-s','(-s)--sy'}'[Only show symlinks]' \
	'*:packages:_gentoo_packages installed'
;;
qlop)
  _arguments -s $common_args \
	{'(--guage)-g','(-g)--guage'}'[Guage number of times a package has been merged]' \
	{'(--time)-t','(-t)--time'}'[Calculate merge time for a specific package]' \
	{'(--human)-H','(-H)--human'}'[Print seconds in human readable format (needs -t)]' \
	{'(--list)-l','(-l)--list'}'[Show merge history]' \
	{'(--unlist)-u','(-u)--unlist'}'[Show unmerge history]' \
	{'(--sync)-s','(-s)--sync'}'[Show sync history]' \
	{'(--current)-c','(-c)--current'}'[Show current emerging packages]' \
	{'(--logfile)-f','(-f)--logfile'}'[Read emerge logfile instead of /var/log/emerge.log]:log:_files' \
	'*:packages:_gentoo_packages available'
;;
qsearch)
  _arguments -s $common_args \
  {'(--all)-a','(-a)--all'}'[List the descriptions of every package in the cache]' \
  {'(--cache)-c','(-c)--cache'}'[Use the portage cache]' \
  {'(--search)-s','(-s)--search'}'[Regex search package basenames]' \
  {'(--desc)-S','(-S)--desc'}'[Regex search package descriptions]' \
  {'(--name-only)-N','(-N)--name-only'}'[Only show package name]' \
  {'(--homepage)-H','(-H)--homepage'}'[Show homepage info]' \
  '*:pattern::'
;;
qsize)
  _arguments -s $common_args \
	{'(--filesystem)-f','(-f)--filesystem'}'[Show size used on disk]' \
	{'(--all)-a','(-a)--all'}'[Size all installed packages]' \
	{'(--sum)-s','(-s)--sum'}'[Include a summary]' \
	{'(--sum-only)-S','(-S)--sum-only'}'[Show just the summary]' \
	{'(--megabyte)-m','(-m)--megabyte'}'[Display size in megabytes]' \
	{'(--kilobyte)-k','(-k)--kilobyte'}'[Display size in kilobytes]' \
	{'(--byte)-b','(-b)--byte'}'[Display size in bytes]' \
	'*:packages:_gentoo_packages installed'
;;
quse)
  _arguments -s $common_args \
	{'(--exact)-e','(-e)--exact'}'[Show exact non regexp matching using strcmp]' \
	{'(--all)-a','(-a)--all'}'[Show annoying things in IUSE]' \
	{'(--keywords)-K','(-K)--keywords'}'[Use the KEYWORDS vs IUSE]' \
	{'(--license)-L','(-L)--license'}'[Use the LICENSE vs IUSE]' \
	{'(--describe)-D','(-D)--describe'}'[Describe the USE flag]' \
  {'(--name-only)-N','(-N)--name-only'}'[Only show package name]' \
	'*:use flag:_gentoo_packages useflag'
;;
esac
