#!/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() # FIXME temporary until dbus support services in home dir if not os.path.isdir('/tmp/sugar-services'): os.mkdir('/tmp/sugar-services') os.execlp('dbus-launch', 'dbus-launch', '--exit-with-session', '--config-file=%s' % env.get_dbus_config(), program)