#compdef girar-clone girar-import girar-upload

local curcontext="$curcontext" context state line ret=1
typeset -A opt_args

local -a common_opts
common_opts=(
	'(-R --remote)'{-R,--remote=}'[girar remote name]:girar remote:_hosts'
        '(-v --verbose -q --quiet)'{-q,--quiet}'[try to be more quiet]'
        '(-v --verbose -q --quiet)'{-v,--verbose}'[print a message for each action]'
        '(- :)'{-V,--version}'[print program version and exit]'
        '(- :)'{-h,--help}'[show usage and exit]'
)

case "$service" in
(girar-clone)
    _arguments -S \
      $common_opts \
      ':user:_girar_info users' \
      ':repository:_girar_info directories "/people/${${words[((CURRENT-1))]}%%,*}/"' && ret=0
    ;;
(girar-import)
    _arguments -S \
      $common_opts \
      '(-u --update)'{-u,--update}'[update into current repository]' \
      '(-G --gears -S --srpms)'{-G,--gears}'[only try /gears/ hierarchy]' \
      '(-G --gears -S --srpms)'{-S,--srpms}'[only try /srpms/ hierarchy]' \
      ':repository:_girar_info binary-repositories' \
      ':package:_rpm_packages avail' && ret=0
    ;;
(girar-upload)
    _arguments -S \
      $common_opts \
      '(-o --origin)'{-o,--origin=}'[git remote name]:git remote' \
      ':repository:' \
      '*:refspec:' && ret=0
    ;;
esac

return ret
