diff --git a/debian/scrapy.install b/debian/scrapy.install index 5977d5f43..17a5861c4 100644 --- a/debian/scrapy.install +++ b/debian/scrapy.install @@ -1 +1,2 @@ extras/scrapy_bash_completion etc/bash_completion.d/ +extras/_scrapy_zsh_completion /usr/local/share/zsh/site-functions/ diff --git a/extras/_scrapy_zsh_completion b/extras/_scrapy_zsh_completion new file mode 100644 index 000000000..3d1ae0f82 --- /dev/null +++ b/extras/_scrapy_zsh_completion @@ -0,0 +1,25 @@ +#compdef scrapy + +# zsh completion for the Scrapy command-line tool + +_scrapy() { + local curcontext="$curcontext" cmd spiders + typeset -A opt_args + cmd=$words[2] + + case "$cmd" in + crawl|edit|check) + spiders=$(scrapy list 2>/dev/null) || spiders="" + if [[ -n "$spiders" ]]; then + compadd `echo $spiders` + fi + ;; + *) + if [[ CURRENT -eq 2 ]]; then + _arguments '*: :(check crawl deploy edit fetch genspider list parse runspider server settings shell startproject version view)' + fi + ;; + esac +} + +_scrapy \ No newline at end of file