#compdef rebar

local curcontext=$curcontext state ret=1
typeset -ga _rebar_global_opts

_rebar_global_opts=(
  '(--help -h)'{--help,-h}'[Show the program options]'
  '(--commands -c)'{--commands,-c}'[Show available commands]'
  '(--version -V)'{--version,-V}'[Show version information]'
  '(-vv -v)'--verbose'[Enforce verbosity level]'
  '(-vv)-v[Slightly more verbose output]'
  '(-v)-vv[More verbose output]'
  '(-vv -v --verbose)'{--quiet,-q}'[Quiet, only print error messages]'
  '(--force -f)'{--force,-f}'[Force]'
  '-D+[Define compiler macro]'
  '(--jobs -j)'{--jobs+,-j+}'[Number of concurrent workers a command may use. Default: 3]:workers:(1 2 3 4 5 6 7 8 9)'
  '(--config -C)'{--config,-C}'[Rebar config file to use]:files:_files'
  '(--profile -p)'{--profile,-p}'[Profile this run of rebar]'
  '(--keep-going -k)'{--keep-going,-k}'[Keep running after a command fails]'
  '(--recursive -r)'{--recursive,-r}'[Apply commands to subdirs and dependencies]'
)

_rebar () {
  _arguments -C $_rebar_global_opts \
    '*::command and variable:->cmd_and_var' \
    && return

  case $state in
    cmd_and_var)
      _values -S = 'variables' \
        'dialyze[Analyze the code for discrepancies]' \
        'build-plt[Build project-specific PLT]' \
        'check-plt[Check the plt for consistency and rebuild it if it is not up-to-date]' \
        'clean[Clean]' \
        'compile[Compile sources]' \
        'create[Create skel based on template and vars]' \
        'create-app[Create simple app skel]' \
        'create-lib[Create simple lib skel]' \
        'create-node[Create simple node skel]' \
        'list-template[List available templates]' \
        'doc[Generate Erlang program documentation]' \
        'check-deps[Display to be fetched dependencies]' \
        'prepare-deps[Fetch and build dependencies]' \
        'refresh-deps[Update and build dependencies]' \
        'get-deps[Fetch dependencies]' \
        'update-deps[Update fetched dependencies]' \
        'delete-deps[Delete fetched dependencies]' \
        'list-deps[List dependencies]' \
        'generate[Build release with reltool]' \
        'overlay[Run reltool overlays only]' \
        'generate-appups[Generate appup files]' \
        'generate-upgrade[Build an upgrade package]' \
        'escriptize[Create stand-alone escript executable]' \
        'eunit[Run eunit tests]' \
        'ct[Run common_test suites]' \
        'qc[Test QuickCheck properties]' \
        'xref[Run cross reference analysis]' \
        'help[Show the program options]' \
        'version[Show version information]' \
        'apps[Application names to process]:' \
        'case[Common Test case]:' \
        'dump_spec[Dump reltool spec]::flag:(1)' \
        'jobs[Number of workers]::workers:(0 1 2 3 4 5 6 7 8 9)' \
        'suites[Common Test suites]::suite name:_path_files -W "(src test)" -g "*.erl(:r)"' \
        'verbose[Verbosity level]::verbosity level:(0 1 2 3)' \
        'libid[Library id]:' \
        'appid[Application id]:' \
        'nodeid[Node id]:' \
        'overlay_vars[Overlay variables file]:' \
        'previous_release[Previous release path]:' \
        'profiler[Select profiler]::flag:(fprof eflame)' \
        'root_dir[Reltool config root directory]::directory:_files -/' \
        'shell[Start a shell similar to erl -pa ebin -pa deps/*/ebin]' \
        'skip_deps[Skip deps]::flag:(true false)' \
        'skip_apps[Application names to not process]::flag:(true false)' \
        'target_dir[Target directory]:' \
        'template[Template name]:' \
        'template_dir[Template directory]::directory:_files -/' \
        'tests[Run eunit tests whose name starts with given string]:' \
        && ret=0
      ;;
  esac
}

_rebar

# Local variables:
# mode: shell-script
# sh-basic-offset: 2
# sh-indent-comment: t
# indent-tabs-mode: nil
# End:
# ex: sw=2 ts=2 et filetype=sh
