diff --git a/plugins/pip/pip.plugin.zsh b/plugins/pip/pip.plugin.zsh index a58f5704a..7eb2d2a35 100644 --- a/plugins/pip/pip.plugin.zsh +++ b/plugins/pip/pip.plugin.zsh @@ -91,11 +91,21 @@ fi # Create requirements file alias pipreq="pip freeze > requirements.txt" -# Update all installed packages -alias pipupall="pipreq && sed -i 's/==/>=/g' requirements.txt && pip install -r requirements.txt --upgrade && rm -rf requirements.txt" - # Install packages from requirements file alias pipir="pip install -r requirements.txt" +# Update all installed packages +function pipupall { + # non-GNU xargs does not support nor need `--no-run-if-empty` + local xargs="xargs --no-run-if-empty" + xargs --version 2>/dev/null | grep -q GNU || xargs="xargs" + pip list --outdated --format freeze | cut -d= -f1 | ${=xargs} pip install --upgrade +} + # Uninstalled all installed packages -alias pipunall="pipreq && pip uninstall -r requirements.txt -y && rm -rf requirements.txt" +function pipunall { + # non-GNU xargs does not support nor need `--no-run-if-empty` + local xargs="xargs --no-run-if-empty" + xargs --version 2>/dev/null | grep -q GNU || xargs="xargs" + pip list --format freeze | cut -d= -f1 | ${=xargs} pip uninstall +}