Delete activities profile data when uninstall #2074
When activities are uninstalled, profile data persists. Profile data can consume a lot of storage space. Therefore it is necessary to delete it when required. Signed-off-by: Martin Abente <mabente@paraguayeduca.org>
This commit is contained in:
parent
d156ff56a8
commit
f0a570b5ae
@ -23,6 +23,7 @@ UNSTABLE.
|
|||||||
from ConfigParser import ConfigParser
|
from ConfigParser import ConfigParser
|
||||||
import locale
|
import locale
|
||||||
import os
|
import os
|
||||||
|
import shutil
|
||||||
import tempfile
|
import tempfile
|
||||||
import logging
|
import logging
|
||||||
import warnings
|
import warnings
|
||||||
@ -393,7 +394,7 @@ class ActivityBundle(Bundle):
|
|||||||
os.unlink(dst)
|
os.unlink(dst)
|
||||||
os.symlink(src, dst)
|
os.symlink(src, dst)
|
||||||
|
|
||||||
def uninstall(self, install_path, force=False):
|
def uninstall(self, install_path, force=False, delete_profile=False):
|
||||||
if os.path.islink(install_path):
|
if os.path.islink(install_path):
|
||||||
# Don't remove the actual activity dir if it's a symbolic link
|
# Don't remove the actual activity dir if it's a symbolic link
|
||||||
# because we may be removing user data.
|
# because we may be removing user data.
|
||||||
@ -422,6 +423,12 @@ class ActivityBundle(Bundle):
|
|||||||
os.readlink(path).startswith(install_path):
|
os.readlink(path).startswith(install_path):
|
||||||
os.remove(path)
|
os.remove(path)
|
||||||
|
|
||||||
|
if delete_profile:
|
||||||
|
bundle_profile_path = env.get_profile_path(self._bundle_id)
|
||||||
|
if os.path.exists(bundle_profile_path):
|
||||||
|
os.chmod(bundle_profile_path, 0775)
|
||||||
|
shutil.rmtree(bundle_profile_path, ignore_errors=True)
|
||||||
|
|
||||||
self._uninstall(install_path)
|
self._uninstall(install_path)
|
||||||
|
|
||||||
def is_user_activity(self):
|
def is_user_activity(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user