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:
Martin Abente 2010-08-18 10:22:49 -04:00
parent d156ff56a8
commit f0a570b5ae

View File

@ -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):