Bug 17777: koha-remove should deal with temporary uploads
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Wed, 14 Dec 2016 15:48:45 +0000 (16:48 +0100)
committerKyle M Hall <kyle@bywatersolutions.com>
Thu, 19 Jan 2017 11:24:14 +0000 (11:24 +0000)
If the temporary upload folder exists, it should be discarded when
removing an instance. If we do not, it may/will create problems when
recreating the same instance.

A function in koha-functions.sh is added to determine the temp directory
instead of hardcoding /tmp.

Test plan:
[1] Copy koha-functions.sh to /usr/share/koha/bin
[2] Run koha-create --create-db newinstancexx
[3] Run mkdir /tmp/koha_newinstancexx_upload (if /tmp is your temp!)
[4] Run debian/scripts/koha-remove newinstancexx
    Do not run the regular one, but verify that you use the updated one.
[5] Check that /tmp/koha_newinstancexx_upload is gone.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Karen Jen <karenliang.student@wegc.school.nz>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
debian/scripts/koha-functions.sh
debian/scripts/koha-remove

index cf6835d..fc1a329 100755 (executable)
@@ -233,3 +233,23 @@ get_loglevels()
     fi
 
 }
+
+get_tmpdir()
+{
+    if [ "$TMPDIR" != "" ]; then
+        if [ -d "$TMPDIR" ]; then
+            echo $TMPDIR
+            return 0
+        fi
+        # We will not unset TMPDIR but just default to /tmp here
+        # Note that mktemp (used later) would look at TMPDIR
+        echo "/tmp"
+        return 0
+    fi
+    local retval=$(mktemp -u)
+    if [ "$retval" = "" ]; then
+        echo "/tmp"
+        return 0
+    fi
+    echo $(dirname $retval)
+}
index 67e2402..763da29 100755 (executable)
@@ -108,6 +108,12 @@ eof
         rm "/etc/koha/sites/$name/zebra-authorities-dom.cfg"
     [ -f "/etc/koha/sites/$name/zebra.passwd" ] && \
         rm "/etc/koha/sites/$name/zebra.passwd"
+
+    tempdir=$(get_tmpdir)
+    [ -d "$tempdir/koha_${name}_upload" ] && \
+        # Temporary uploads can be discarded, apart from purgeall
+        rm -r "$tempdir/koha_${name}_upload"
+
     [ -f "/var/lib/koha/$name/letsencrypt.enabled" ] && \
         rm -r "/var/lib/koha/$name/letsencrypt.enabled"
     [ -f "/etc/letsencrypt/renewal/$le_opacdomain.conf" ] && \