#compdef mommy

local exit_codes state

exit_codes=(
    0:"Success"
    1:"Error"
)

_arguments \
    "(- *)"{-h,--help}'[Show manual]' \
    "(- *)"{-v,--version}'[Show version]' \
    "(- *)"{-t,--toggle}'[Toggle output]' \
    -1'[Write to stdout]' \
    {-c,--config}'[Configuration file]:config:_files' \
    {-d,--global-config-dirs}'[Colon-separated global config file dirs]:global config:_dir_list' \
    {-e,--eval}'[Evaluate string]:string' \
    {-p,--pipefail}'[Enable pipefail for evaluated commands]' \
    {-s,--status}'[Exit code]:code:->status' \
    '*::command:'

# suggest exit codes for --status
# $state is required, otherwise it'll always suggest exit codes
[[ $state == status ]] && _describe -t code "Exit code" exit_codes

# vim: ft=zsh
