2acb3071cade6395c1dbcee31b6b8d198ebed66a

Author
WH-2099 <wh2099@outlook.com>
Committer
GitHub <noreply@github.com>
Date

Message

fix(pip): don't overwrite `requirements.txt` in internal commands (#10061)

Diff

 1diff --git a/plugins/pip/pip.plugin.zsh b/plugins/pip/pip.plugin.zsh
 2index a58f5704afaedcddacdcc40241fefe32a42c0d7f..7eb2d2a35730d12705406ef9c376971cc01be34b 100644
 3--- a/plugins/pip/pip.plugin.zsh
 4+++ b/plugins/pip/pip.plugin.zsh
 5@@ -91,11 +91,21 @@ fi
 6 # Create requirements file
 7 alias pipreq="pip freeze > requirements.txt"
 8 
 9-# Update all installed packages
10-alias pipupall="pipreq && sed -i 's/==/>=/g' requirements.txt && pip install -r requirements.txt --upgrade && rm -rf requirements.txt"
11-
12 # Install packages from requirements file
13 alias pipir="pip install -r requirements.txt"
14 
15+# Update all installed packages
16+function pipupall {
17+  # non-GNU xargs does not support nor need `--no-run-if-empty`
18+  local xargs="xargs --no-run-if-empty"
19+  xargs --version 2>/dev/null | grep -q GNU || xargs="xargs"
20+  pip list --outdated --format freeze | cut -d= -f1 | ${=xargs} pip install --upgrade
21+}
22+
23 # Uninstalled all installed packages
24-alias pipunall="pipreq && pip uninstall -r requirements.txt -y && rm -rf requirements.txt"
25+function pipunall {
26+  # non-GNU xargs does not support nor need `--no-run-if-empty`
27+  local xargs="xargs --no-run-if-empty"
28+  xargs --version 2>/dev/null | grep -q GNU || xargs="xargs"
29+  pip list --format freeze | cut -d= -f1 | ${=xargs} pip uninstall
30+}