aboutsummaryrefslogtreecommitdiff
path: root/devscripts/zsh-completion.in
diff options
context:
space:
mode:
authorXu Cheng <xucheng@me.com>2014-10-06 18:58:25 +0800
committerXu Cheng <xucheng@me.com>2014-10-07 13:19:59 +0800
commit3b700f8d434cbf1b097324a577e4b95325b24d91 (patch)
treecd2eeb065e02a203e9779996e07c691efbde8ca9 /devscripts/zsh-completion.in
parentd838b1bd4a256484820af7aeb0c2711934cb00ad (diff)
support zsh completion
Diffstat (limited to 'devscripts/zsh-completion.in')
-rw-r--r--devscripts/zsh-completion.in28
1 files changed, 28 insertions, 0 deletions
diff --git a/devscripts/zsh-completion.in b/devscripts/zsh-completion.in
new file mode 100644
index 000000000..b394a1ae7
--- /dev/null
+++ b/devscripts/zsh-completion.in
@@ -0,0 +1,28 @@
+#compdef youtube-dl
+
+__youtube_dl() {
+ local curcontext="$curcontext" fileopts diropts cur prev
+ typeset -A opt_args
+ fileopts="{{fileopts}}"
+ diropts="{{diropts}}"
+ cur=$words[CURRENT]
+ case $cur in
+ :)
+ _arguments '*: :(::ytfavorites ::ytrecommended ::ytsubscriptions ::ytwatchlater ::ythistory)'
+ ;;
+ *)
+ prev=$words[CURRENT-1]
+ if [[ ${prev} =~ ${fileopts} ]]; then
+ _path_files
+ elif [[ ${prev} =~ ${diropts} ]]; then
+ _path_files -/
+ elif [[ ${prev} == "--recode-video" ]]; then
+ _arguments '*: :(mp4 flv ogg webm mkv)'
+ else
+ _arguments '*: :({{flags}})'
+ fi
+ ;;
+ esac
+}
+
+__youtube_dl \ No newline at end of file