Skip to content

Commit 4e2a44e

Browse files
committed
feat: skip first non-option verb of wrapped pip command for optimize flagging
1 parent a53ff7f commit 4e2a44e

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

chroot-pip.sh

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,21 +85,37 @@ if [ $PIP_OPTIMIZE = '1' ]; then
8585
AFTER_PACKAGES=$(mktemp)
8686
python -m pip freeze >"$BEFORE_PACKAGES"
8787
fi
88-
88+
set -x
8989
case "$@" in
9090
*'--force-reinstall'*|optimize*)
91+
maybe_packages=
92+
index=-1
9193
for package_name in $@
9294
do
93-
if case "$package_name" in '-'*) false ;; *) true ;; esac ; then
95+
if ! case "$package_name" in '-'*) false ;; *) true ;; esac ; then
96+
continue
97+
fi
98+
index=$(expr $index \+ 1)
99+
if [ $index -eq 0 ]; then
100+
continue
101+
fi
102+
maybe_packages="${maybe_packages} $package_name"
103+
done
104+
package_name=
105+
if [ x$maybe_packages != x ]; then
106+
for package_name in $maybe_packages
107+
do
108+
# if the package is already installed, flag it
109+
# as if it wasn't installed so we can optimize it
94110
if >/dev/null pip show "${package_name}"; then
95111
sed -i'' '/^'"${package_name}"'==/d' $BEFORE_PACKAGES
96112
fi
97-
fi
98-
done
113+
done
114+
fi
99115
;;
100116
esac
101-
102-
if [ $1 = optimize ]; then
117+
set +x
118+
if [ x$1 = xoptimize ]; then
103119
shift
104120
if [ x"$@" = x ]; then
105121
>&2 echo 'optimize [PACKAGE] [PACKAGE2] ... [PACKAGEN]

0 commit comments

Comments
 (0)