|
|
- #compdef spt
-
- autoload -U is-at-least
-
- _spt() {
- 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 context curcontext="$curcontext" state line
- _arguments "${_arguments_options[@]}" \
- '-t+[Set the tick rate (milliseconds): the lower the number the higher the FPS.]' \
- '--tick-rate=[Set the tick rate (milliseconds): the lower the number the higher the FPS.]' \
- '-c+[Specify configuration file path.]' \
- '--config=[Specify configuration file path.]' \
- '--completions=[Generates completions for your preferred shell]: :(bash zsh fish power-shell elvish)' \
- '-h[Prints help information]' \
- '--help[Prints help information]' \
- '-V[Prints version information]' \
- '--version[Prints version information]' \
- ":: :_spt_commands" \
- "*::: :->spotify-tui" \
- && ret=0
- case $state in
- (spotify-tui)
- words=($line[1] "${words[@]}")
- (( CURRENT += 1 ))
- curcontext="${curcontext%:*:*}:spt-command-$line[1]:"
- case $line[1] in
- (pb)
- _arguments "${_arguments_options[@]}" \
- '-d+[Specifies the spotify device to use]' \
- '--device=[Specifies the spotify device to use]' \
- '-f+[Specifies the output format]' \
- '--format=[Specifies the output format]' \
- '--transfer=[Transfers the playback to new DEVICE]' \
- '-v+[Sets the volume of a device to VOLUME (1 - 100)]' \
- '--volume=[Sets the volume of a device to VOLUME (1 - 100)]' \
- '-t[Pauses/resumes the playback of a device]' \
- '--toggle[Pauses/resumes the playback of a device]' \
- '-s[Prints out the current status of a device (default)]' \
- '--status[Prints out the current status of a device (default)]' \
- '--share-track[Returns the url to the current track]' \
- '--share-album[Returns the url to the album of the current track]' \
- '--like[Likes the current song]' \
- '--shuffle[Toggles shuffle mode]' \
- '--repeat[Switches between repeat modes]' \
- '*-n[Jumps to the next song]' \
- '*--next[Jumps to the next song]' \
- '*-p[Jumps to the previous song]' \
- '*--previous[Jumps to the previous song]' \
- '-h[Prints help information]' \
- '--help[Prints help information]' \
- '-V[Prints version information]' \
- '--version[Prints version information]' \
- && ret=0
- ;;
- (playback)
- _arguments "${_arguments_options[@]}" \
- '-d+[Specifies the spotify device to use]' \
- '--device=[Specifies the spotify device to use]' \
- '-f+[Specifies the output format]' \
- '--format=[Specifies the output format]' \
- '--transfer=[Transfers the playback to new DEVICE]' \
- '-v+[Sets the volume of a device to VOLUME (1 - 100)]' \
- '--volume=[Sets the volume of a device to VOLUME (1 - 100)]' \
- '-t[Pauses/resumes the playback of a device]' \
- '--toggle[Pauses/resumes the playback of a device]' \
- '-s[Prints out the current status of a device (default)]' \
- '--status[Prints out the current status of a device (default)]' \
- '--share-track[Returns the url to the current track]' \
- '--share-album[Returns the url to the album of the current track]' \
- '--like[Likes the current song]' \
- '--shuffle[Toggles shuffle mode]' \
- '--repeat[Switches between repeat modes]' \
- '*-n[Jumps to the next song]' \
- '*--next[Jumps to the next song]' \
- '*-p[Jumps to the previous song]' \
- '*--previous[Jumps to the previous song]' \
- '-h[Prints help information]' \
- '--help[Prints help information]' \
- '-V[Prints version information]' \
- '--version[Prints version information]' \
- && ret=0
- ;;
- (p)
- _arguments "${_arguments_options[@]}" \
- '-d+[Specifies the spotify device to use]' \
- '--device=[Specifies the spotify device to use]' \
- '-f+[Specifies the output format]' \
- '--format=[Specifies the output format]' \
- '-u+[Plays the URI]' \
- '--uri=[Plays the URI]' \
- '-n+[Plays the first match with NAME from the specified category]' \
- '--name=[Plays the first match with NAME from the specified category]' \
- '(-b --album -a --artist -p --playlist -w --show)-q[Adds track to queue instead of playing it directly]' \
- '(-b --album -a --artist -p --playlist -w --show)--queue[Adds track to queue instead of playing it directly]' \
- '(-t --track -b --album -a --artist -w --show)-r[Plays a random track (only works with playlists)]' \
- '(-t --track -b --album -a --artist -w --show)--random[Plays a random track (only works with playlists)]' \
- '-b[Looks for an album]' \
- '--album[Looks for an album]' \
- '-a[Looks for an artist]' \
- '--artist[Looks for an artist]' \
- '-t[Looks for a track]' \
- '--track[Looks for a track]' \
- '-w[Looks for a show]' \
- '--show[Looks for a show]' \
- '-p[Looks for a playlist]' \
- '--playlist[Looks for a playlist]' \
- '-h[Prints help information]' \
- '--help[Prints help information]' \
- '-V[Prints version information]' \
- '--version[Prints version information]' \
- && ret=0
- ;;
- (play)
- _arguments "${_arguments_options[@]}" \
- '-d+[Specifies the spotify device to use]' \
- '--device=[Specifies the spotify device to use]' \
- '-f+[Specifies the output format]' \
- '--format=[Specifies the output format]' \
- '-u+[Plays the URI]' \
- '--uri=[Plays the URI]' \
- '-n+[Plays the first match with NAME from the specified category]' \
- '--name=[Plays the first match with NAME from the specified category]' \
- '(-b --album -a --artist -p --playlist -w --show)-q[Adds track to queue instead of playing it directly]' \
- '(-b --album -a --artist -p --playlist -w --show)--queue[Adds track to queue instead of playing it directly]' \
- '(-t --track -b --album -a --artist -w --show)-r[Plays a random track (only works with playlists)]' \
- '(-t --track -b --album -a --artist -w --show)--random[Plays a random track (only works with playlists)]' \
- '-b[Looks for an album]' \
- '--album[Looks for an album]' \
- '-a[Looks for an artist]' \
- '--artist[Looks for an artist]' \
- '-t[Looks for a track]' \
- '--track[Looks for a track]' \
- '-w[Looks for a show]' \
- '--show[Looks for a show]' \
- '-p[Looks for a playlist]' \
- '--playlist[Looks for a playlist]' \
- '-h[Prints help information]' \
- '--help[Prints help information]' \
- '-V[Prints version information]' \
- '--version[Prints version information]' \
- && ret=0
- ;;
- (l)
- _arguments "${_arguments_options[@]}" \
- '-f+[Specifies the output format]' \
- '--format=[Specifies the output format]' \
- '--limit=[Specifies the maximum number of results (1 - 50)]' \
- '-d[Lists devices]' \
- '--devices[Lists devices]' \
- '-p[Lists playlists]' \
- '--playlists[Lists playlists]' \
- '--liked[Lists liked songs]' \
- '-h[Prints help information]' \
- '--help[Prints help information]' \
- '-V[Prints version information]' \
- '--version[Prints version information]' \
- && ret=0
- ;;
- (list)
- _arguments "${_arguments_options[@]}" \
- '-f+[Specifies the output format]' \
- '--format=[Specifies the output format]' \
- '--limit=[Specifies the maximum number of results (1 - 50)]' \
- '-d[Lists devices]' \
- '--devices[Lists devices]' \
- '-p[Lists playlists]' \
- '--playlists[Lists playlists]' \
- '--liked[Lists liked songs]' \
- '-h[Prints help information]' \
- '--help[Prints help information]' \
- '-V[Prints version information]' \
- '--version[Prints version information]' \
- && ret=0
- ;;
- (s)
- _arguments "${_arguments_options[@]}" \
- '-f+[Specifies the output format]' \
- '--format=[Specifies the output format]' \
- '--limit=[Specifies the maximum number of results (1 - 50)]' \
- '-b[Looks for albums]' \
- '--albums[Looks for albums]' \
- '-a[Looks for artists]' \
- '--artists[Looks for artists]' \
- '-p[Looks for playlists]' \
- '--playlists[Looks for playlists]' \
- '-t[Looks for tracks]' \
- '--tracks[Looks for tracks]' \
- '-w[Looks for shows]' \
- '--shows[Looks for shows]' \
- '-h[Prints help information]' \
- '--help[Prints help information]' \
- '-V[Prints version information]' \
- '--version[Prints version information]' \
- ':search -- Specifies the search query:_files' \
- && ret=0
- ;;
- (search)
- _arguments "${_arguments_options[@]}" \
- '-f+[Specifies the output format]' \
- '--format=[Specifies the output format]' \
- '--limit=[Specifies the maximum number of results (1 - 50)]' \
- '-b[Looks for albums]' \
- '--albums[Looks for albums]' \
- '-a[Looks for artists]' \
- '--artists[Looks for artists]' \
- '-p[Looks for playlists]' \
- '--playlists[Looks for playlists]' \
- '-t[Looks for tracks]' \
- '--tracks[Looks for tracks]' \
- '-w[Looks for shows]' \
- '--shows[Looks for shows]' \
- '-h[Prints help information]' \
- '--help[Prints help information]' \
- '-V[Prints version information]' \
- '--version[Prints version information]' \
- ':search -- Specifies the search query:_files' \
- && ret=0
- ;;
- (help)
- _arguments "${_arguments_options[@]}" \
- '-h[Prints help information]' \
- '--help[Prints help information]' \
- '-V[Prints version information]' \
- '--version[Prints version information]' \
- && ret=0
- ;;
- esac
- ;;
- esac
- }
-
- (( $+functions[_spt_commands] )) ||
- _spt_commands() {
- local commands; commands=(
- "playback:Interacts with the playback of a device" \
- "pb:Interacts with the playback of a device" \
- "play:Plays a uri or another spotify item by name" \
- "p:Plays a uri or another spotify item by name" \
- "list:Lists devices, liked songs and playlists" \
- "l:Lists devices, liked songs and playlists" \
- "search:Searches for tracks, albums and more" \
- "s:Searches for tracks, albums and more" \
- "help:Prints this message or the help of the given subcommand(s)" \
- )
- _describe -t commands 'spt commands' commands "$@"
- }
- (( $+functions[_spt__help_commands] )) ||
- _spt__help_commands() {
- local commands; commands=(
-
- )
- _describe -t commands 'spt help commands' commands "$@"
- }
- (( $+functions[_l_commands] )) ||
- _l_commands() {
- local commands; commands=(
-
- )
- _describe -t commands 'l commands' commands "$@"
- }
- (( $+functions[_spt__l_commands] )) ||
- _spt__l_commands() {
- local commands; commands=(
-
- )
- _describe -t commands 'spt l commands' commands "$@"
- }
- (( $+functions[_spt__list_commands] )) ||
- _spt__list_commands() {
- local commands; commands=(
-
- )
- _describe -t commands 'spt list commands' commands "$@"
- }
- (( $+functions[_p_commands] )) ||
- _p_commands() {
- local commands; commands=(
-
- )
- _describe -t commands 'p commands' commands "$@"
- }
- (( $+functions[_spt__p_commands] )) ||
- _spt__p_commands() {
- local commands; commands=(
-
- )
- _describe -t commands 'spt p commands' commands "$@"
- }
- (( $+functions[_pb_commands] )) ||
- _pb_commands() {
- local commands; commands=(
-
- )
- _describe -t commands 'pb commands' commands "$@"
- }
- (( $+functions[_spt__pb_commands] )) ||
- _spt__pb_commands() {
- local commands; commands=(
-
- )
- _describe -t commands 'spt pb commands' commands "$@"
- }
- (( $+functions[_spt__play_commands] )) ||
- _spt__play_commands() {
- local commands; commands=(
-
- )
- _describe -t commands 'spt play commands' commands "$@"
- }
- (( $+functions[_spt__playback_commands] )) ||
- _spt__playback_commands() {
- local commands; commands=(
-
- )
- _describe -t commands 'spt playback commands' commands "$@"
- }
- (( $+functions[_s_commands] )) ||
- _s_commands() {
- local commands; commands=(
-
- )
- _describe -t commands 's commands' commands "$@"
- }
- (( $+functions[_spt__s_commands] )) ||
- _spt__s_commands() {
- local commands; commands=(
-
- )
- _describe -t commands 'spt s commands' commands "$@"
- }
- (( $+functions[_spt__search_commands] )) ||
- _spt__search_commands() {
- local commands; commands=(
-
- )
- _describe -t commands 'spt search commands' commands "$@"
- }
-
- _spt "$@"
|