Don't break activity startup if .info have 'class' instead of 'exec'

When we ported sugar to Gtk3 we removed the support of the fields
exec and service_name due they were deprecated for a long time [1].
But this is still a problem in deployments, and we already added
compatibility for the service_name field.
Here [3] there is a long thred were we discussed this issue.

[1] ae85dd62d4
[2] 32f97b48c3
[3] http://lists.sugarlabs.org/archive/sugar-devel/2013-October/045404.html
This commit is contained in:
Gonzalo Odiard 2015-04-03 20:20:34 -03:00
parent 3c88e987e4
commit a43b972d1b

View File

@ -101,7 +101,6 @@ class ActivityBundle(Bundle):
def __init__(self, path, translated=True): def __init__(self, path, translated=True):
Bundle.__init__(self, path) Bundle.__init__(self, path)
self.activity_class = None
self.bundle_exec = None self.bundle_exec = None
self._name = None self._name = None
@ -157,10 +156,16 @@ class ActivityBundle(Bundle):
if cp.has_option(section, 'exec'): if cp.has_option(section, 'exec'):
self.bundle_exec = cp.get(section, 'exec') self.bundle_exec = cp.get(section, 'exec')
else:
if cp.has_option(section, 'class'):
self.bundle_exec = 'sugar-activity ' + cp.get(section,
'class')
logging.error('ATTENTION: class property in the '
'activity.info file is deprecated, should be '
'changed to exec')
else: else:
raise MalformedBundleException( raise MalformedBundleException(
'Activity bundle %s must specify either class or exec' % 'Activity bundle %s must specify exec' % self._path)
self._path)
if cp.has_option(section, 'mime_types'): if cp.has_option(section, 'mime_types'):
mime_list = cp.get(section, 'mime_types').strip(';') mime_list = cp.get(section, 'mime_types').strip(';')
@ -287,12 +292,7 @@ class ActivityBundle(Bundle):
def get_command(self): def get_command(self):
"""Get the command to execute to launch the activity factory""" """Get the command to execute to launch the activity factory"""
if self.bundle_exec: return os.path.expandvars(self.bundle_exec)
command = os.path.expandvars(self.bundle_exec)
else:
command = 'sugar-activity ' + self.activity_class
return command
def get_mime_types(self): def get_mime_types(self):
"""Get the MIME types supported by the activity""" """Get the MIME types supported by the activity"""