python,python3: handle install script errors better
[feed/packages.git] / lang / python / python3 / files / python3-package-install.sh
index ae5e172807107352373998e6f2ed012f7e30cc3a..cbb84ab1c2145ad948ed2467ada58d34446292fa 100644 (file)
@@ -1,4 +1,5 @@
 #!/bin/sh
+set -e
 
 process_filespec() {
        local src_dir="$1"
@@ -50,10 +51,13 @@ find "$dst_dir" -name "*.egg-info" | xargs rm -rf
 
 if [ "$mode" == "sources" ] ; then
        # Copy only python source files
-       find $dst_dir -not -name "*\.py" | xargs rm -f
+       find $dst_dir -type f -not -name "*\.py" | xargs rm -f
+
        # Delete empty folders (if the case)
-       find $dst_dir/usr -type d | xargs rmdir &> /dev/null
-       rmdir $dst_dir/usr &> /dev/null
+       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
        exit 0
 fi
 
@@ -67,6 +71,15 @@ $python -m compileall -b -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 -name "*\.py" | xargs rm -f
+find $dst_dir -type f -name "*\.py" | xargs 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
+
+exit 0