diff options
Diffstat (limited to 'plugins/pip')
-rw-r--r-- | plugins/pip/README.md | 19 | ||||
-rw-r--r-- | plugins/pip/_pip | 1 | ||||
-rw-r--r-- | plugins/pip/pip.plugin.zsh | 11 |
3 files changed, 28 insertions, 3 deletions
diff --git a/plugins/pip/README.md b/plugins/pip/README.md new file mode 100644 index 000000000..f07b5c058 --- /dev/null +++ b/plugins/pip/README.md @@ -0,0 +1,19 @@ +# pip plugin + +This plugin adds completion for [pip](https://pip.pypa.io/en/latest/), +the Python package manager. + +To use it, add `pip` to the plugins array in your zshrc file: + +```zsh +plugins=(... pip) +``` + +## pip cache + +The pip plugin caches the names of available pip packages from the PyPI index. +To trigger the caching process, try to complete `pip install`, +or you can run `zsh-pip-cache-packages` directly. + +To reset the cache, run `zsh-pip-clear-cache` and it will be rebuilt next +the next time you autocomplete `pip install`. diff --git a/plugins/pip/_pip b/plugins/pip/_pip index 607f68e58..a5adead4a 100644 --- a/plugins/pip/_pip +++ b/plugins/pip/_pip @@ -89,6 +89,7 @@ case "$words[1]" in if [[ "$state" == packages ]]; then _pip_all _wanted piplist expl 'packages' compadd -a piplist + _files -g "*.(tar.gz|whl)" fi ;; uninstall) _pip_installed diff --git a/plugins/pip/pip.plugin.zsh b/plugins/pip/pip.plugin.zsh index d7236b02a..a46e7658c 100644 --- a/plugins/pip/pip.plugin.zsh +++ b/plugins/pip/pip.plugin.zsh @@ -9,8 +9,12 @@ # If you would like to clear your cache, go ahead and do a # "zsh-pip-clear-cache". -ZSH_PIP_CACHE_FILE=~/.pip/zsh-cache -ZSH_PIP_INDEXES=(https://pypi.python.org/simple/) +if [[ -d "${XDG_CACHE_HOME:-$HOME/.cache}/pip" ]]; then + ZSH_PIP_CACHE_FILE="${XDG_CACHE_HOME:-$HOME/.cache}/pip/zsh-cache" +else + ZSH_PIP_CACHE_FILE=~/.pip/zsh-cache +fi +ZSH_PIP_INDEXES=(https://pypi.org/simple/) zsh-pip-clear-cache() { rm $ZSH_PIP_CACHE_FILE @@ -29,9 +33,10 @@ zsh-pip-cache-packages() { if [[ ! -f $ZSH_PIP_CACHE_FILE ]]; then echo -n "(...caching package index...)" tmp_cache=/tmp/zsh_tmp_cache + touch $tmp_cache for index in $ZSH_PIP_INDEXES ; do # well... I've already got two problems - curl $index 2>/dev/null | \ + curl -L $index 2>/dev/null | \ zsh-pip-clean-packages \ >> $tmp_cache done |