Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-10-29 18:05:09 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-10-29 18:05:09 (GMT)
commitd150ac40cc3a6a22111131799528c8090a356ee1 (patch)
treef7d19ac2fa7c662e9611e235898ee2514f988cb7 /sugar
parent87274fd89f0c127f05cd34ad912b47a185c4b0e3 (diff)
More work on bundles support
Diffstat (limited to 'sugar')
-rw-r--r--sugar/activity/__init__.py7
-rw-r--r--sugar/activity/bundle.py2
-rw-r--r--sugar/activity/bundleregistry.py26
-rw-r--r--sugar/env.py3
4 files changed, 20 insertions, 18 deletions
diff --git a/sugar/activity/__init__.py b/sugar/activity/__init__.py
index cc34df2..959c0a1 100644
--- a/sugar/activity/__init__.py
+++ b/sugar/activity/__init__.py
@@ -16,10 +16,3 @@ def get_default_type(activity_type):
splitted_id = activity_type.split('.')
splitted_id.reverse()
return '_' + '_'.join(splitted_id) + '._udp'
-
-from sugar.activity.bundleregistry import BundleRegistry
-
-_bundle_registry = BundleRegistry()
-
-def get_bundle_registry():
- return _bundle_registry
diff --git a/sugar/activity/bundle.py b/sugar/activity/bundle.py
index ddf968f..07ff544 100644
--- a/sugar/activity/bundle.py
+++ b/sugar/activity/bundle.py
@@ -41,7 +41,7 @@ class Bundle:
def get_service_name(self):
"""Get the activity service name"""
- return self._id
+ return self._service_name
def get_icon(self):
"""Get the activity icon name"""
diff --git a/sugar/activity/bundleregistry.py b/sugar/activity/bundleregistry.py
index f28b681..4acf6dd 100644
--- a/sugar/activity/bundleregistry.py
+++ b/sugar/activity/bundleregistry.py
@@ -1,3 +1,5 @@
+import os
+
from sugar.activity.bundle import Bundle
class BundleRegistry:
@@ -14,19 +16,23 @@ class BundleRegistry:
else:
return None
- def append_search_path(self, path):
- """Append a directory to the bundles search path"""
+ def add_search_path(self, path):
+ """Add a directory to the bundles search path"""
self._search_path.append(path)
self._scan_directory(path)
def __iter__(self):
- return self._bundles.values()
+ return self._bundles.values().__iter__()
def _scan_directory(self, path):
- for bundle_dir in os.listdir(path):
- if os.path.isdir(bundle_dir):
- info_path = os.path.join(bundle_dir, activity_info)
- if os.path.isfile(info_path):
- bundle = Bundle(info_path)
- if bundle.is_valid():
- self._bundles.append(bundle)
+ for f in os.listdir(path):
+ bundle_dir = os.path.join(path, f)
+ if os.path.isdir(bundle_dir) and bundle_dir.endswith('.activity'):
+ self._add_bundle(bundle_dir)
+
+ def _add_bundle(self, bundle_dir):
+ info_path = os.path.join(bundle_dir, 'activity.info')
+ if os.path.isfile(info_path):
+ bundle = Bundle(info_path)
+ if bundle.is_valid():
+ self._bundles[bundle.get_service_name()] = bundle
diff --git a/sugar/env.py b/sugar/env.py
index 65081fc..2109c2d 100644
--- a/sugar/env.py
+++ b/sugar/env.py
@@ -53,3 +53,6 @@ def get_services_dir():
def get_dbus_config():
return sugar_dbus_config
+
+def get_bundles_path():
+ return os.path.join(get_profile_path(), 'bundles')