summaryrefslogtreecommitdiff
path: root/lang/python/python-package-install.sh
diff options
context:
space:
mode:
Diffstat (limited to 'lang/python/python-package-install.sh')
-rw-r--r--lang/python/python-package-install.sh37
1 files changed, 24 insertions, 13 deletions
diff --git a/lang/python/python-package-install.sh b/lang/python/python-package-install.sh
index e5f6ec893..a1b21e49f 100644
--- a/lang/python/python-package-install.sh
+++ b/lang/python/python-package-install.sh
@@ -40,6 +40,17 @@ process_filespec() {
)
}
+delete_empty_dirs() {
+ local dst_dir="$1"
+ if [ -d "$dst_dir/usr" ] ; then
+ for _ in $(seq 1 10) ; do
+ find "$dst_dir/usr" -empty -type d -exec rmdir {} \; || continue
+ break
+ done
+ rmdir "$dst_dir/usr" || true
+ fi
+}
+
ver="$1"
src_dir="$2"
dst_dir="$3"
@@ -47,20 +58,24 @@ python="$4"
mode="$5"
filespec="$6"
+find "$src_dir" -name "*\.exe" -exec rm -f {} \;
+
process_filespec "$src_dir" "$dst_dir" "$filespec" || {
echo "process filespec error-ed"
exit 1
}
+usr_bin_dir="$dst_dir/usr/bin"
+
+if [ -d "$usr_bin_dir" ] ; then
+ sed "1"'!'"b;s,^#"'!'".*python.*,#"'!'"/usr/bin/python${ver}," -i $usr_bin_dir/*
+fi
+
if [ "$mode" == "sources" ] ; then
# Copy only python source files
- find $dst_dir -not -type d -not -name "*\.py" | xargs rm -f
+ find "$dst_dir" -not -type d -not -name "*\.py" -exec rm -f {} \;
- # Delete empty folders (if the case)
- if [ -d "$dst_dir/usr" ] ; then
- find $dst_dir/usr -type d | xargs rmdir --ignore-fail-on-non-empty
- rmdir --ignore-fail-on-non-empty $dst_dir/usr
- fi
+ delete_empty_dirs "$dst_dir"
exit 0
fi
@@ -73,19 +88,15 @@ legacy=
# So, we just stuck to un-optimized byte-codes,
# which is still way better/faster than running
# Python sources all the time.
-$python -m compileall $legacy -d '/' $dst_dir || {
+$python -m compileall $legacy -d '/' "$dst_dir" || {
echo "python -m compileall err-ed"
exit 1
}
# Delete source files and pyc [ un-optimized bytecode files ]
# We may want to make this optimization thing configurable later, but not sure atm
-find $dst_dir -type f -name "*\.py" | xargs rm -f
+find "$dst_dir" -type f -name "*\.py" -exec rm -f {} \;
-# Delete empty folders (if the case)
-if [ -d "$dst_dir/usr" ] ; then
- find $dst_dir/usr -type d | xargs rmdir --ignore-fail-on-non-empty
- rmdir --ignore-fail-on-non-empty $dst_dir/usr
-fi
+delete_empty_dirs "$dst_dir"
exit 0