You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
2.5 KiB
Python

#!/usr/bin/python
# Copyright (C) 2006, Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
import os
import sys
sourcedir = os.path.abspath(os.path.dirname(__file__))
if os.path.isfile(os.path.join(sourcedir, 'sugar/__uninstalled__.py')):
print 'Running sugar from ' + sourcedir + ' ...'
sys.path.insert(0, sourcedir)
else:
print 'Running the installed sugar...'
sourcedir = None
from sugar import env
from sugar import setup
if sourcedir:
if os.environ.has_key('PYTHONPATH'):
old_path = os.environ['PYTHONPATH']
os.environ['PYTHONPATH'] = sourcedir + ':' + old_path
else:
os.environ['PYTHONPATH'] = sourcedir
bin_path = sourcedir
bin_path += ':' + os.path.join(sourcedir, 'shell')
bin_path += ':' + os.path.join(sourcedir, 'services/presence')
bin_path += ':' + os.path.join(sourcedir, 'services/clipboard')
if os.environ.has_key('PATH'):
old_path = os.environ['PATH']
os.environ['PATH'] = bin_path + ':' + old_path
else:
os.environ['PATH'] = bin_path
source = os.path.join(sourcedir, 'activities')
runner = os.path.join(sourcedir, 'shell/sugar-activity-factory')
setup.setup_activities(source, env.get_activity_info_dir(), runner)
bin = os.path.join(sourcedir,
'services/presence/sugar-presence-service')
setup.write_service('org.laptop.Presence', bin,
env.get_activity_info_dir())
bin = os.path.join(sourcedir,
'services/clipboard/sugar-clipboard')
setup.write_service('org.laptop.Clipboard', bin,
env.get_activity_info_dir())
from sugar.emulator import Emulator
program = 'sugar-shell'
fullscreen = False
for i in range(1, len(sys.argv)):
if sys.argv[i] == '-fullscreen':
fullscreen = True
else:
program = sys.argv[i]
emulator = Emulator(fullscreen)
emulator.start()
dbus_config = env.get_dbus_config()
os.execlp('dbus-launch', 'dbus-launch', '--exit-with-session',
'--config-file=%s' % dbus_config, program)