Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/activity/bundle.py
diff options
context:
space:
mode:
Diffstat (limited to 'sugar/activity/bundle.py')
-rw-r--r--sugar/activity/bundle.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/sugar/activity/bundle.py b/sugar/activity/bundle.py
new file mode 100644
index 0000000..ddf968f
--- /dev/null
+++ b/sugar/activity/bundle.py
@@ -0,0 +1,52 @@
+import logging
+from ConfigParser import ConfigParser
+
+class Bundle:
+ """Info about an activity bundle. Wraps the activity.info file."""
+ def __init__(self, info_path):
+ self._name = None
+ self._icon = None
+ self._service_name = None
+ self._show_launcher = False
+ self._valid = True
+
+ cp = ConfigParser()
+ cp.read([info_path])
+
+ if cp.has_option('Activity', 'service_name'):
+ self._service_name = cp.get('Activity', 'service_name')
+ else:
+ self._valid = False
+ logging.error('%s must specify a service name' % info_path)
+
+ if cp.has_option('Activity', 'name'):
+ self._service_name = cp.get('Activity', 'name')
+ else:
+ self._valid = False
+ logging.error('%s must specify a name' % info_path)
+
+ if cp.has_option('Activity', 'show_launcher'):
+ if cp.get('Activity', 'show_launcher') == 'yes':
+ self._show_launcher = True
+
+ if cp.has_option('Activity', 'icon'):
+ self._icon = cp.get('Activity', 'icon')
+
+ def is_valid(self):
+ return self._valid
+
+ def get_name(self):
+ """Get the activity user visible name."""
+ return self._name
+
+ def get_service_name(self):
+ """Get the activity service name"""
+ return self._id
+
+ def get_icon(self):
+ """Get the activity icon name"""
+ return self._icon
+
+ def get_show_launcher(self):
+ """Get whether there should be a visible launcher for the activity"""
+ return self._show_launcher