diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2006-06-21 20:05:52 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2006-06-21 20:05:52 (GMT) |
commit | 9ea68051741d6e7b0bde4e6c7326cde4a14f6238 (patch) | |
tree | a41c5b1c25140173c90459ac58388002067f2c99 /shell/session | |
parent | f4e2791c897651d52980d35b84115e7c7f85a249 (diff) |
More work on packages refactoring, mostly working
Diffstat (limited to 'shell/session')
-rw-r--r-- | shell/session/Makefile.am | 5 | ||||
-rw-r--r-- | shell/session/session.py | 40 |
2 files changed, 26 insertions, 19 deletions
diff --git a/shell/session/Makefile.am b/shell/session/Makefile.am index a8ba913..23e4194 100644 --- a/shell/session/Makefile.am +++ b/shell/session/Makefile.am @@ -1,5 +1,4 @@ -sugardir = $(pythondir)/sugar/session +sugardir = $(pkgdatadir)/shell/session sugar_PYTHON = \ __init__.py \ - session.py \ - LogWriter.py + session.py diff --git a/shell/session/session.py b/shell/session/session.py index 2ddc554..2f6eab2 100644 --- a/shell/session/session.py +++ b/shell/session/session.py @@ -17,25 +17,33 @@ class Session: shell = Shell() shell.connect('close', self._shell_close_cb) shell.start() - - activities = [] - activities_dirs = [] - for data_dir in env.get_data_dirs(): - act_dir = os.path.join(data_dir, env.get_activities_dir()) - activities_dirs.append(act_dir) + self._run_activities() - activities_dirs.append(os.path.join(env.get_user_dir(), 'activities')) + def _run_activities(self): + base_dirs = [] - for activities_dir in activities_dirs: - if os.path.isdir(activities_dir): - for filename in os.listdir(activities_dir): - if filename.endswith(".activity"): - path = os.path.join(activities_dir, filename) - cp = ConfigParser() - cp.read([path]) - python_class = cp.get('Activity', "python_class") - activities.append(python_class) + base_dirs.append(env.get_activities_dir()) + base_dirs.append(os.path.join(env.get_user_dir(), 'activities')) + + for base_dir in base_dirs: + if os.path.isdir(base_dir): + for filename in os.listdir(base_dir): + activity_dir = os.path.join(base_dir, filename) + if os.path.isdir(activity_dir): + self._run_activity(os.path.abspath(activity_dir)) + + def _run_activity(self, activity_dir): + env.add_to_python_path(activity_dir) + + activities = [] + for filename in os.listdir(activity_dir): + if filename.endswith(".activity"): + path = os.path.join(activity_dir, filename) + cp = ConfigParser() + cp.read([path]) + python_class = cp.get('Activity', "python_class") + activities.append(python_class) for activity in activities: args = [ 'python', '-m', activity ] |