浏览代码

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

WH-2099 2 年之前
父节点
当前提交
2acb3071ca
共有 1 个文件被更改,包括 14 次插入4 次删除
  1. 14 4
      plugins/pip/pip.plugin.zsh

+ 14 - 4
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
+}