#compdef asciinema local ret=1 local -a context line state state_descr help local -A opt_args help=( '(: * -)'{-h,--help}'[display help information]' ) _arguments -A '-*' \ $help \ '(: * -)--version[display version information]' \ '1:command:(( auth\:"link install ID with asciinema.org account" cat\:"dump full output of recorded session" play\:"play back recorded session" rec\:"record session" upload\:"upload recorded session" ))' \ '*:: :->next' \ && ret=0 [[ $state == next ]] && case $words[1] in auth) _arguments -s -S : $help && ret=0 ;; cat|upload) _arguments -s -S : $help '1::recording file:_files' && ret=0 ;; play) _arguments -s -S : \ $help \ '(-i --idle-time-limit)'{-i+,--idle-time-limit=}'[specify max idle time]:max idle time (seconds)' \ '(-s --speed)'{-s+,--speed=}'[specify playback speed]:speed factor' \ '1: :->files-urls' \ && ret=0 [[ $state == files-urls ]] && _alternative 'files:recording file:_files' 'urls: :_urls' && ret=0 ;; rec) _arguments -s -S : \ $help \ '(--overwrite)--append[append to existing recording]' \ '(-c --command)'{-c+,--command=}'[specify command to record]: :_path_commands' \ '(-e --env)'{-e+,--env=}'[specify environment variables to capture]:environment variable:_sequence _parameters -g "*export*"' \ '(-i --idle-time-limit)'{-i+,--idle-time-limit=}'[specify max idle time]:max idle time (seconds)' \ '(-q -y --quiet --yes)'{-q,--quiet}'[suppress notices/warnings (implies -y)]' \ '--raw[save raw stdout output, without timing or other metadata]' \ '--stdin[enable stdin (keyboard) recording]' \ '(-t --title)'{-t+,--title=}'[specify title of recording]:title' \ '(--append)--overwrite[overwrite existing recording]' \ '(-y --yes)'{-y,--yes}'[bypass confirmation prompts]' \ '1::recording file:_files' \ && ret=0 ;; esac return ret