diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/Makefile.am | 10 | ||||
-rw-r--r-- | shell/google/Makefile.am | 5 | ||||
-rw-r--r-- | shell/session/Makefile.am | 5 | ||||
-rw-r--r-- | shell/session/session.py | 40 | ||||
-rwxr-xr-x | shell/shell.py | 2 | ||||
-rwxr-xr-x | shell/sugar | 17 |
6 files changed, 42 insertions, 37 deletions
diff --git a/shell/Makefile.am b/shell/Makefile.am index 1080b7d..e044fa2 100644 --- a/shell/Makefile.am +++ b/shell/Makefile.am @@ -1,8 +1,12 @@ -sugardir = $(pythondir)/sugar/shell +SUBDIRS = google session + +bin_SCRIPTS = sugar + +sugardir = $(pkgdatadir)/shell sugar_PYTHON = \ __init__.py \ - activity.py \ shell.py \ Owner.py \ PresenceWindow.py \ - StartPage.py + StartPage.py \ + WindowManager.py diff --git a/shell/google/Makefile.am b/shell/google/Makefile.am index 89ba29e..0f6057c 100644 --- a/shell/google/Makefile.am +++ b/shell/google/Makefile.am @@ -1,5 +1,6 @@ -cut_n_pastedir = $(datadir)/sugar -cut_n_paste_PYTHON = \ +googledir = $(pkgdatadir)/shell/google +google_PYTHON = \ + __init__.py \ google.py \ GoogleSOAPFacade.py \ SOAP.py 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 ] diff --git a/shell/shell.py b/shell/shell.py index 18eceeb..e4cc36a 100755 --- a/shell/shell.py +++ b/shell/shell.py @@ -11,7 +11,7 @@ import gobject import sugar.util from sugar.chat.ChatWindow import ChatWindow from sugar.chat.GroupChat import GroupChat -from sugar.session.LogWriter import LogWriter +from sugar.LogWriter import LogWriter from Owner import ShellOwner from StartPage import StartPage diff --git a/shell/sugar b/shell/sugar index ccfdd00..ad1905b 100755 --- a/shell/sugar +++ b/shell/sugar @@ -9,13 +9,6 @@ import pygtk pygtk.require('2.0') import gobject -def add_to_python_path(path): - sys.path.insert(0, path) - if os.environ.has_key('PYTHONPATH'): - os.environ['PYTHONPATH'] += ':' + path - else: - os.environ['PYTHONPATH'] = path - def start_dbus(): curdir = os.path.dirname(__file__) args = "/bin/dbus-daemon --session --print-address".split() @@ -60,16 +53,16 @@ if not os.environ.has_key("SUGAR_NICK_NAME"): curdir = os.path.abspath(os.path.dirname(__file__)) basedir = os.path.dirname(curdir) +import sugar.env + if os.path.isfile(os.path.join(basedir, 'sugar/__uninstalled__.py')): print 'Running sugar from ' + basedir + ' ...' - add_to_python_path(basedir) - add_to_python_path(os.path.join(basedir, 'shell')) - add_to_python_path(os.path.join(basedir, 'activities/browser')) + sugar.env.add_to_python_path(basedir) + sugar.env.add_to_python_path(os.path.join(basedir, 'shell')) else: + sugar.env.add_to_python_path(os.path.join(sugar.env.get_data_dir(), 'shell')) print 'Running the installed sugar...' -add_to_python_path(os.path.expanduser('~/.sugar/activities')) - print 'Redirecting output to the console, press ctrl+d to open it.' from session.session import Session |