#compdef nunc

autoload -U is-at-least

_nunc() {
    typeset -A opt_args
    typeset -a _arguments_options
    local ret=1

    if is-at-least 5.2; then
        _arguments_options=(-s -S -C)
    else
        _arguments_options=(-s -C)
    fi

    local activities
    local activity_cache="${XDG_CACHE_HOME:-${HOME}/.cache}/nunc/activities"
    if [[ -f ${activity_cache} ]]; then
        activities=("${(@f)"$(<${activity_cache})"}")
    else
        activities=( )
    fi

    local context curcontext="$curcontext" state line
    _arguments "${_arguments_options[@]}" : \
'-c+[]:CONFIG:_files' \
'--config=[]:CONFIG:_files' \
'--generate-completions=[]:GENERATE_COMPLETIONS:(bash elvish fish powershell zsh)' \
'-h[Print help]' \
'--help[Print help]' \
":: :_nunc_commands" \
"*::: :->nunc" \
&& ret=0
    case $state in
    (nunc)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-command-$line[1]:"
        case $line[1] in
            (start)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':activity:("${activities[@]}")' \
'::when:' \
&& ret=0
;;
(stop)
_arguments "${_arguments_options[@]}" : \
'-a+[]:ACTIVITY:("${activities[@]}")' \
'--activity=[]:ACTIVITY:("${activities[@]}")' \
'-h[Print help]' \
'--help[Print help]' \
'::when:' \
&& ret=0
;;
(recap)
_arguments "${_arguments_options[@]}" : \
'*-l[]' \
'*--last[]' \
'-h[Print help]' \
'--help[Print help]' \
'::timespan:(day week month all)' \
&& ret=0
;;
(now)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(create)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_nunc__create_commands" \
"*::: :->create" \
&& ret=0

    case $state in
    (create)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-create-command-$line[1]:"
        case $line[1] in
            (activity)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':path:' \
':name:' \
&& ret=0
;;
(category)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':path:' \
':name:' \
&& ret=0
;;
(streak)
_arguments "${_arguments_options[@]}" : \
'-a+[Create an activity streak]:ACTIVITY:("${activities[@]}")' \
'--activity=[Create an activity streak]:ACTIVITY:("${activities[@]}")' \
'-c+[Create a category streak]:CATEGORY: ' \
'--category=[Create a category streak]:CATEGORY: ' \
'-i+[Duration of each iteration (at least 1d)]:INTERVAL: ' \
'--interval=[Duration of each iteration (at least 1d)]:INTERVAL: ' \
'-m+[Duration required to fulfill the streak for each iteration]:MIN_DURATION: ' \
'--min-duration=[Duration required to fulfill the streak for each iteration]:MIN_DURATION: ' \
'-w+[When to start the streak (automatically rounded down based on the interval)]:WHEN: ' \
'--when=[When to start the streak (automatically rounded down based on the interval)]:WHEN: ' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_nunc__create__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-create-help-command-$line[1]:"
        case $line[1] in
            (activity)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(category)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(streak)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(show)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_nunc__show_commands" \
"*::: :->show" \
&& ret=0

    case $state in
    (show)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-show-command-$line[1]:"
        case $line[1] in
            (tree)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(activity)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(category)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(streak)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_nunc__show__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-show-help-command-$line[1]:"
        case $line[1] in
            (tree)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(activity)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(category)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(streak)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(edit)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_nunc__edit_commands" \
"*::: :->edit" \
&& ret=0

    case $state in
    (edit)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-edit-command-$line[1]:"
        case $line[1] in
            (activity)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':activity:("${activities[@]}")' \
&& ret=0
;;
(entry)
_arguments "${_arguments_options[@]}" : \
'-w+[Edit entries from then]:WHEN: ' \
'--when=[Edit entries from then]:WHEN: ' \
'-a+[Limit entry selection to entries of an activity]:ACTIVITY:("${activities[@]}")' \
'--activity=[Limit entry selection to entries of an activity]:ACTIVITY:("${activities[@]}")' \
'*-l[Edit the last entry, repeat to edit an older entry]' \
'*--last[Edit the last entry, repeat to edit an older entry]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_nunc__edit__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-edit-help-command-$line[1]:"
        case $line[1] in
            (activity)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(entry)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(remove)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_nunc__remove_commands" \
"*::: :->remove" \
&& ret=0

    case $state in
    (remove)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-remove-command-$line[1]:"
        case $line[1] in
            (activity)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':activity:("${activities[@]}")' \
&& ret=0
;;
(category)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':category:' \
&& ret=0
;;
(entry)
_arguments "${_arguments_options[@]}" : \
'-w+[Remove entries from then]:WHEN: ' \
'--when=[Remove entries from then]:WHEN: ' \
'-a+[Limit entry selection to entries of an activity]:ACTIVITY:("${activities[@]}")' \
'--activity=[Limit entry selection to entries of an activity]:ACTIVITY:("${activities[@]}")' \
'*-l[Remove the last entry, repeat to remove an older entry]' \
'*--last[Remove the last entry, repeat to remove an older entry]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(streak)
_arguments "${_arguments_options[@]}" : \
'-a+[Stop an activity streak]:ACTIVITY:("${activities[@]}")' \
'--activity=[Stop an activity streak]:ACTIVITY:("${activities[@]}")' \
'-c+[Stop a category streak]:CATEGORY: ' \
'--category=[Stop a category streak]:CATEGORY: ' \
'-w+[When to stop the streak]:WHEN: ' \
'--when=[When to stop the streak]:WHEN: ' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_nunc__remove__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-remove-help-command-$line[1]:"
        case $line[1] in
            (activity)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(category)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(entry)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(streak)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(db)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_nunc__db_commands" \
"*::: :->db" \
&& ret=0

    case $state in
    (db)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-db-command-$line[1]:"
        case $line[1] in
            (absorb)
_arguments "${_arguments_options[@]}" : \
'-d[]' \
'--dry-run[]' \
'-h[Print help]' \
'--help[Print help]' \
':other_db:_files' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_nunc__db__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-db-help-command-$line[1]:"
        case $line[1] in
            (absorb)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(zone)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_nunc__zone_commands" \
"*::: :->zone" \
&& ret=0

    case $state in
    (zone)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-zone-command-$line[1]:"
        case $line[1] in
            (list)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(current)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(change)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':zone_name:' \
'::when:' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_nunc__zone__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-zone-help-command-$line[1]:"
        case $line[1] in
            (list)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(current)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(change)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_nunc__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-help-command-$line[1]:"
        case $line[1] in
            (start)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(stop)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(recap)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(now)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(create)
_arguments "${_arguments_options[@]}" : \
":: :_nunc__help__create_commands" \
"*::: :->create" \
&& ret=0

    case $state in
    (create)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-help-create-command-$line[1]:"
        case $line[1] in
            (activity)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(category)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(streak)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
(show)
_arguments "${_arguments_options[@]}" : \
":: :_nunc__help__show_commands" \
"*::: :->show" \
&& ret=0

    case $state in
    (show)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-help-show-command-$line[1]:"
        case $line[1] in
            (tree)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(activity)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(category)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(streak)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
(edit)
_arguments "${_arguments_options[@]}" : \
":: :_nunc__help__edit_commands" \
"*::: :->edit" \
&& ret=0

    case $state in
    (edit)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-help-edit-command-$line[1]:"
        case $line[1] in
            (activity)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(entry)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
(remove)
_arguments "${_arguments_options[@]}" : \
":: :_nunc__help__remove_commands" \
"*::: :->remove" \
&& ret=0

    case $state in
    (remove)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-help-remove-command-$line[1]:"
        case $line[1] in
            (activity)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(category)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(entry)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(streak)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
(db)
_arguments "${_arguments_options[@]}" : \
":: :_nunc__help__db_commands" \
"*::: :->db" \
&& ret=0

    case $state in
    (db)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-help-db-command-$line[1]:"
        case $line[1] in
            (absorb)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
(zone)
_arguments "${_arguments_options[@]}" : \
":: :_nunc__help__zone_commands" \
"*::: :->zone" \
&& ret=0

    case $state in
    (zone)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:nunc-help-zone-command-$line[1]:"
        case $line[1] in
            (list)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(current)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(change)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
}

(( $+functions[_nunc_commands] )) ||
_nunc_commands() {
    local commands; commands=(
'start:Start a new entry for an activity' \
'stop:Stop a running entry' \
'recap:Show entries for a given timespan' \
'now:Show running activities and status of streaks' \
'create:Create a new activity or category' \
'show:Show activities, categories, entries or streaks' \
'edit:Edit an existing activity, category, entry or streak' \
'remove:Remove an existing activity, category, entry or streak' \
'db:Absorb entries from a matching database or create a new one' \
'zone:View and change timezones' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'nunc commands' commands "$@"
}
(( $+functions[_nunc__create_commands] )) ||
_nunc__create_commands() {
    local commands; commands=(
'activity:' \
'category:' \
'streak:Create a new {activity|category} streak' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'nunc create commands' commands "$@"
}
(( $+functions[_nunc__create__activity_commands] )) ||
_nunc__create__activity_commands() {
    local commands; commands=()
    _describe -t commands 'nunc create activity commands' commands "$@"
}
(( $+functions[_nunc__create__category_commands] )) ||
_nunc__create__category_commands() {
    local commands; commands=()
    _describe -t commands 'nunc create category commands' commands "$@"
}
(( $+functions[_nunc__create__help_commands] )) ||
_nunc__create__help_commands() {
    local commands; commands=(
'activity:' \
'category:' \
'streak:Create a new {activity|category} streak' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'nunc create help commands' commands "$@"
}
(( $+functions[_nunc__create__help__activity_commands] )) ||
_nunc__create__help__activity_commands() {
    local commands; commands=()
    _describe -t commands 'nunc create help activity commands' commands "$@"
}
(( $+functions[_nunc__create__help__category_commands] )) ||
_nunc__create__help__category_commands() {
    local commands; commands=()
    _describe -t commands 'nunc create help category commands' commands "$@"
}
(( $+functions[_nunc__create__help__help_commands] )) ||
_nunc__create__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'nunc create help help commands' commands "$@"
}
(( $+functions[_nunc__create__help__streak_commands] )) ||
_nunc__create__help__streak_commands() {
    local commands; commands=()
    _describe -t commands 'nunc create help streak commands' commands "$@"
}
(( $+functions[_nunc__create__streak_commands] )) ||
_nunc__create__streak_commands() {
    local commands; commands=()
    _describe -t commands 'nunc create streak commands' commands "$@"
}
(( $+functions[_nunc__db_commands] )) ||
_nunc__db_commands() {
    local commands; commands=(
'absorb:' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'nunc db commands' commands "$@"
}
(( $+functions[_nunc__db__absorb_commands] )) ||
_nunc__db__absorb_commands() {
    local commands; commands=()
    _describe -t commands 'nunc db absorb commands' commands "$@"
}
(( $+functions[_nunc__db__help_commands] )) ||
_nunc__db__help_commands() {
    local commands; commands=(
'absorb:' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'nunc db help commands' commands "$@"
}
(( $+functions[_nunc__db__help__absorb_commands] )) ||
_nunc__db__help__absorb_commands() {
    local commands; commands=()
    _describe -t commands 'nunc db help absorb commands' commands "$@"
}
(( $+functions[_nunc__db__help__help_commands] )) ||
_nunc__db__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'nunc db help help commands' commands "$@"
}
(( $+functions[_nunc__edit_commands] )) ||
_nunc__edit_commands() {
    local commands; commands=(
'activity:' \
'entry:Edit an entry' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'nunc edit commands' commands "$@"
}
(( $+functions[_nunc__edit__activity_commands] )) ||
_nunc__edit__activity_commands() {
    local commands; commands=()
    _describe -t commands 'nunc edit activity commands' commands "$@"
}
(( $+functions[_nunc__edit__entry_commands] )) ||
_nunc__edit__entry_commands() {
    local commands; commands=()
    _describe -t commands 'nunc edit entry commands' commands "$@"
}
(( $+functions[_nunc__edit__help_commands] )) ||
_nunc__edit__help_commands() {
    local commands; commands=(
'activity:' \
'entry:Edit an entry' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'nunc edit help commands' commands "$@"
}
(( $+functions[_nunc__edit__help__activity_commands] )) ||
_nunc__edit__help__activity_commands() {
    local commands; commands=()
    _describe -t commands 'nunc edit help activity commands' commands "$@"
}
(( $+functions[_nunc__edit__help__entry_commands] )) ||
_nunc__edit__help__entry_commands() {
    local commands; commands=()
    _describe -t commands 'nunc edit help entry commands' commands "$@"
}
(( $+functions[_nunc__edit__help__help_commands] )) ||
_nunc__edit__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'nunc edit help help commands' commands "$@"
}
(( $+functions[_nunc__help_commands] )) ||
_nunc__help_commands() {
    local commands; commands=(
'start:Start a new entry for an activity' \
'stop:Stop a running entry' \
'recap:Show entries for a given timespan' \
'now:Show running activities and status of streaks' \
'create:Create a new activity or category' \
'show:Show activities, categories, entries or streaks' \
'edit:Edit an existing activity, category, entry or streak' \
'remove:Remove an existing activity, category, entry or streak' \
'db:Absorb entries from a matching database or create a new one' \
'zone:View and change timezones' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'nunc help commands' commands "$@"
}
(( $+functions[_nunc__help__create_commands] )) ||
_nunc__help__create_commands() {
    local commands; commands=(
'activity:' \
'category:' \
'streak:Create a new {activity|category} streak' \
    )
    _describe -t commands 'nunc help create commands' commands "$@"
}
(( $+functions[_nunc__help__create__activity_commands] )) ||
_nunc__help__create__activity_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help create activity commands' commands "$@"
}
(( $+functions[_nunc__help__create__category_commands] )) ||
_nunc__help__create__category_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help create category commands' commands "$@"
}
(( $+functions[_nunc__help__create__streak_commands] )) ||
_nunc__help__create__streak_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help create streak commands' commands "$@"
}
(( $+functions[_nunc__help__db_commands] )) ||
_nunc__help__db_commands() {
    local commands; commands=(
'absorb:' \
    )
    _describe -t commands 'nunc help db commands' commands "$@"
}
(( $+functions[_nunc__help__db__absorb_commands] )) ||
_nunc__help__db__absorb_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help db absorb commands' commands "$@"
}
(( $+functions[_nunc__help__edit_commands] )) ||
_nunc__help__edit_commands() {
    local commands; commands=(
'activity:' \
'entry:Edit an entry' \
    )
    _describe -t commands 'nunc help edit commands' commands "$@"
}
(( $+functions[_nunc__help__edit__activity_commands] )) ||
_nunc__help__edit__activity_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help edit activity commands' commands "$@"
}
(( $+functions[_nunc__help__edit__entry_commands] )) ||
_nunc__help__edit__entry_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help edit entry commands' commands "$@"
}
(( $+functions[_nunc__help__help_commands] )) ||
_nunc__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help help commands' commands "$@"
}
(( $+functions[_nunc__help__now_commands] )) ||
_nunc__help__now_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help now commands' commands "$@"
}
(( $+functions[_nunc__help__recap_commands] )) ||
_nunc__help__recap_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help recap commands' commands "$@"
}
(( $+functions[_nunc__help__remove_commands] )) ||
_nunc__help__remove_commands() {
    local commands; commands=(
'activity:Delete an activity from the database' \
'category:Delete a category from the database' \
'entry:Delete an entry from the database' \
'streak:Stop a running {activity|category} streak' \
    )
    _describe -t commands 'nunc help remove commands' commands "$@"
}
(( $+functions[_nunc__help__remove__activity_commands] )) ||
_nunc__help__remove__activity_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help remove activity commands' commands "$@"
}
(( $+functions[_nunc__help__remove__category_commands] )) ||
_nunc__help__remove__category_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help remove category commands' commands "$@"
}
(( $+functions[_nunc__help__remove__entry_commands] )) ||
_nunc__help__remove__entry_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help remove entry commands' commands "$@"
}
(( $+functions[_nunc__help__remove__streak_commands] )) ||
_nunc__help__remove__streak_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help remove streak commands' commands "$@"
}
(( $+functions[_nunc__help__show_commands] )) ||
_nunc__help__show_commands() {
    local commands; commands=(
'tree:' \
'activity:' \
'category:' \
'streak:' \
    )
    _describe -t commands 'nunc help show commands' commands "$@"
}
(( $+functions[_nunc__help__show__activity_commands] )) ||
_nunc__help__show__activity_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help show activity commands' commands "$@"
}
(( $+functions[_nunc__help__show__category_commands] )) ||
_nunc__help__show__category_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help show category commands' commands "$@"
}
(( $+functions[_nunc__help__show__streak_commands] )) ||
_nunc__help__show__streak_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help show streak commands' commands "$@"
}
(( $+functions[_nunc__help__show__tree_commands] )) ||
_nunc__help__show__tree_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help show tree commands' commands "$@"
}
(( $+functions[_nunc__help__start_commands] )) ||
_nunc__help__start_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help start commands' commands "$@"
}
(( $+functions[_nunc__help__stop_commands] )) ||
_nunc__help__stop_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help stop commands' commands "$@"
}
(( $+functions[_nunc__help__zone_commands] )) ||
_nunc__help__zone_commands() {
    local commands; commands=(
'list:' \
'current:' \
'change:' \
    )
    _describe -t commands 'nunc help zone commands' commands "$@"
}
(( $+functions[_nunc__help__zone__change_commands] )) ||
_nunc__help__zone__change_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help zone change commands' commands "$@"
}
(( $+functions[_nunc__help__zone__current_commands] )) ||
_nunc__help__zone__current_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help zone current commands' commands "$@"
}
(( $+functions[_nunc__help__zone__list_commands] )) ||
_nunc__help__zone__list_commands() {
    local commands; commands=()
    _describe -t commands 'nunc help zone list commands' commands "$@"
}
(( $+functions[_nunc__now_commands] )) ||
_nunc__now_commands() {
    local commands; commands=()
    _describe -t commands 'nunc now commands' commands "$@"
}
(( $+functions[_nunc__recap_commands] )) ||
_nunc__recap_commands() {
    local commands; commands=()
    _describe -t commands 'nunc recap commands' commands "$@"
}
(( $+functions[_nunc__remove_commands] )) ||
_nunc__remove_commands() {
    local commands; commands=(
'activity:Delete an activity from the database' \
'category:Delete a category from the database' \
'entry:Delete an entry from the database' \
'streak:Stop a running {activity|category} streak' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'nunc remove commands' commands "$@"
}
(( $+functions[_nunc__remove__activity_commands] )) ||
_nunc__remove__activity_commands() {
    local commands; commands=()
    _describe -t commands 'nunc remove activity commands' commands "$@"
}
(( $+functions[_nunc__remove__category_commands] )) ||
_nunc__remove__category_commands() {
    local commands; commands=()
    _describe -t commands 'nunc remove category commands' commands "$@"
}
(( $+functions[_nunc__remove__entry_commands] )) ||
_nunc__remove__entry_commands() {
    local commands; commands=()
    _describe -t commands 'nunc remove entry commands' commands "$@"
}
(( $+functions[_nunc__remove__help_commands] )) ||
_nunc__remove__help_commands() {
    local commands; commands=(
'activity:Delete an activity from the database' \
'category:Delete a category from the database' \
'entry:Delete an entry from the database' \
'streak:Stop a running {activity|category} streak' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'nunc remove help commands' commands "$@"
}
(( $+functions[_nunc__remove__help__activity_commands] )) ||
_nunc__remove__help__activity_commands() {
    local commands; commands=()
    _describe -t commands 'nunc remove help activity commands' commands "$@"
}
(( $+functions[_nunc__remove__help__category_commands] )) ||
_nunc__remove__help__category_commands() {
    local commands; commands=()
    _describe -t commands 'nunc remove help category commands' commands "$@"
}
(( $+functions[_nunc__remove__help__entry_commands] )) ||
_nunc__remove__help__entry_commands() {
    local commands; commands=()
    _describe -t commands 'nunc remove help entry commands' commands "$@"
}
(( $+functions[_nunc__remove__help__help_commands] )) ||
_nunc__remove__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'nunc remove help help commands' commands "$@"
}
(( $+functions[_nunc__remove__help__streak_commands] )) ||
_nunc__remove__help__streak_commands() {
    local commands; commands=()
    _describe -t commands 'nunc remove help streak commands' commands "$@"
}
(( $+functions[_nunc__remove__streak_commands] )) ||
_nunc__remove__streak_commands() {
    local commands; commands=()
    _describe -t commands 'nunc remove streak commands' commands "$@"
}
(( $+functions[_nunc__show_commands] )) ||
_nunc__show_commands() {
    local commands; commands=(
'tree:' \
'activity:' \
'category:' \
'streak:' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'nunc show commands' commands "$@"
}
(( $+functions[_nunc__show__activity_commands] )) ||
_nunc__show__activity_commands() {
    local commands; commands=()
    _describe -t commands 'nunc show activity commands' commands "$@"
}
(( $+functions[_nunc__show__category_commands] )) ||
_nunc__show__category_commands() {
    local commands; commands=()
    _describe -t commands 'nunc show category commands' commands "$@"
}
(( $+functions[_nunc__show__help_commands] )) ||
_nunc__show__help_commands() {
    local commands; commands=(
'tree:' \
'activity:' \
'category:' \
'streak:' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'nunc show help commands' commands "$@"
}
(( $+functions[_nunc__show__help__activity_commands] )) ||
_nunc__show__help__activity_commands() {
    local commands; commands=()
    _describe -t commands 'nunc show help activity commands' commands "$@"
}
(( $+functions[_nunc__show__help__category_commands] )) ||
_nunc__show__help__category_commands() {
    local commands; commands=()
    _describe -t commands 'nunc show help category commands' commands "$@"
}
(( $+functions[_nunc__show__help__help_commands] )) ||
_nunc__show__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'nunc show help help commands' commands "$@"
}
(( $+functions[_nunc__show__help__streak_commands] )) ||
_nunc__show__help__streak_commands() {
    local commands; commands=()
    _describe -t commands 'nunc show help streak commands' commands "$@"
}
(( $+functions[_nunc__show__help__tree_commands] )) ||
_nunc__show__help__tree_commands() {
    local commands; commands=()
    _describe -t commands 'nunc show help tree commands' commands "$@"
}
(( $+functions[_nunc__show__streak_commands] )) ||
_nunc__show__streak_commands() {
    local commands; commands=()
    _describe -t commands 'nunc show streak commands' commands "$@"
}
(( $+functions[_nunc__show__tree_commands] )) ||
_nunc__show__tree_commands() {
    local commands; commands=()
    _describe -t commands 'nunc show tree commands' commands "$@"
}
(( $+functions[_nunc__start_commands] )) ||
_nunc__start_commands() {
    local commands; commands=()
    _describe -t commands 'nunc start commands' commands "$@"
}
(( $+functions[_nunc__stop_commands] )) ||
_nunc__stop_commands() {
    local commands; commands=()
    _describe -t commands 'nunc stop commands' commands "$@"
}
(( $+functions[_nunc__zone_commands] )) ||
_nunc__zone_commands() {
    local commands; commands=(
'list:' \
'current:' \
'change:' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'nunc zone commands' commands "$@"
}
(( $+functions[_nunc__zone__change_commands] )) ||
_nunc__zone__change_commands() {
    local commands; commands=()
    _describe -t commands 'nunc zone change commands' commands "$@"
}
(( $+functions[_nunc__zone__current_commands] )) ||
_nunc__zone__current_commands() {
    local commands; commands=()
    _describe -t commands 'nunc zone current commands' commands "$@"
}
(( $+functions[_nunc__zone__help_commands] )) ||
_nunc__zone__help_commands() {
    local commands; commands=(
'list:' \
'current:' \
'change:' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'nunc zone help commands' commands "$@"
}
(( $+functions[_nunc__zone__help__change_commands] )) ||
_nunc__zone__help__change_commands() {
    local commands; commands=()
    _describe -t commands 'nunc zone help change commands' commands "$@"
}
(( $+functions[_nunc__zone__help__current_commands] )) ||
_nunc__zone__help__current_commands() {
    local commands; commands=()
    _describe -t commands 'nunc zone help current commands' commands "$@"
}
(( $+functions[_nunc__zone__help__help_commands] )) ||
_nunc__zone__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'nunc zone help help commands' commands "$@"
}
(( $+functions[_nunc__zone__help__list_commands] )) ||
_nunc__zone__help__list_commands() {
    local commands; commands=()
    _describe -t commands 'nunc zone help list commands' commands "$@"
}
(( $+functions[_nunc__zone__list_commands] )) ||
_nunc__zone__list_commands() {
    local commands; commands=()
    _describe -t commands 'nunc zone list commands' commands "$@"
}

if [ "$funcstack[1]" = "_nunc" ]; then
    _nunc "$@"
else
    compdef _nunc nunc
fi
