Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/session
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-07-12 11:20:41 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-07-12 11:20:41 (GMT)
commitca2b08f8b6fb1bc54a4e4f9cfc457f57cf958c7f (patch)
tree8fe41e84baa9f16f4a4d8aa99aa30f1851a24c09 /shell/session
parente959a6f37f07550e62d670ce6bad69a7e1ad8270 (diff)
Cleanup and document session creation and activity registry
Diffstat (limited to 'shell/session')
-rw-r--r--shell/session/Makefile.am4
-rw-r--r--shell/session/__init__.py0
-rw-r--r--shell/session/session.py70
3 files changed, 0 insertions, 74 deletions
diff --git a/shell/session/Makefile.am b/shell/session/Makefile.am
deleted file mode 100644
index 23e4194..0000000
--- a/shell/session/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-sugardir = $(pkgdatadir)/shell/session
-sugar_PYTHON = \
- __init__.py \
- session.py
diff --git a/shell/session/__init__.py b/shell/session/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/shell/session/__init__.py
+++ /dev/null
diff --git a/shell/session/session.py b/shell/session/session.py
deleted file mode 100644
index d996aa7..0000000
--- a/shell/session/session.py
+++ /dev/null
@@ -1,70 +0,0 @@
-import os
-import signal
-from ConfigParser import ConfigParser
-
-import pygtk
-pygtk.require('2.0')
-import gtk
-
-from sugar.activity import Activity
-from sugar import env
-
-from Shell import Shell
-
-class Session:
- def __init__(self):
- self._activity_processes = {}
-
- def start(self):
- shell = Shell()
- shell.connect('close', self._shell_close_cb)
- shell.start()
-
- self._run_activities()
-
- try:
- gtk.main()
- except KeyboardInterrupt:
- print 'Ctrl+C pressed, exiting...'
- self.shutdown()
-
- def _run_activities(self):
- base_dirs = []
-
- 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)
-
- for filename in os.listdir(activity_dir):
- if filename.endswith(".activity"):
- path = os.path.join(activity_dir, filename)
- cp = ConfigParser()
- cp.read([path])
-
- activity_name = cp.get('Activity', "name")
- activity_class = cp.get('Activity', "class")
-
- args = [ 'python', '-m', 'sugar/activity/Activity' ]
- args.append(activity_name)
- args.append(activity_class)
- pid = os.spawnvp(os.P_NOWAIT, 'python', args)
- self._activity_processes[activity_name] = pid
-
- def _shell_close_cb(self, shell):
- self.shutdown()
-
- def shutdown(self):
- # FIXME Obviously we want to notify the activities to
- # shutt down rather then killing them down forcefully.
- for name in self._activity_processes.keys():
- print 'Shutting down %s' % (name)
- os.kill(self._activity_processes[name], signal.SIGTERM)