Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
Diffstat (limited to 'shell')
-rw-r--r--shell/Makefile.am10
-rw-r--r--shell/google/Makefile.am5
-rw-r--r--shell/session/Makefile.am5
-rw-r--r--shell/session/session.py40
-rwxr-xr-xshell/shell.py2
-rwxr-xr-xshell/sugar17
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