| 
									
										
										
										
											2006-10-16 13:35:07 +02:00
										 |  |  | #!/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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-10-17 10:14:42 +02:00
										 |  |  | sourcedir = os.path.abspath(os.path.dirname(__file__)) | 
					
						
							| 
									
										
										
										
											2006-10-16 13:35:07 +02:00
										 |  |  | 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...' | 
					
						
							| 
									
										
										
										
											2006-10-17 10:25:47 +02:00
										 |  |  | 	sourcedir = None | 
					
						
							| 
									
										
										
										
											2006-10-16 13:35:07 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | from sugar import env | 
					
						
							| 
									
										
										
										
											2006-10-17 10:25:47 +02:00
										 |  |  | from sugar import setup | 
					
						
							| 
									
										
										
										
											2006-10-16 13:35:07 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-10-17 10:25:47 +02:00
										 |  |  | if sourcedir: | 
					
						
							| 
									
										
										
										
											2006-10-17 14:31:04 +02:00
										 |  |  | 	if os.environ.has_key('PYTHONPATH'): | 
					
						
							|  |  |  | 		old_path = os.environ['PYTHONPATH'] | 
					
						
							|  |  |  | 		os.environ['PYTHONPATH'] = sourcedir + ':' + old_path | 
					
						
							|  |  |  | 	else: | 
					
						
							|  |  |  | 		os.environ['PYTHONPATH'] = sourcedir | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-10-17 10:25:47 +02:00
										 |  |  | 	bin_path = sourcedir | 
					
						
							| 
									
										
										
										
											2006-10-17 14:31:04 +02:00
										 |  |  | 	bin_path += ':' + os.path.join(sourcedir, 'shell') | 
					
						
							|  |  |  | 	bin_path += ':' + os.path.join(sourcedir, 'services/presence') | 
					
						
							| 
									
										
										
										
											2006-11-01 19:43:59 +01:00
										 |  |  | 	bin_path += ':' + os.path.join(sourcedir, 'services/clipboard') | 
					
						
							| 
									
										
										
										
											2006-10-17 10:25:47 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	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, | 
					
						
							| 
									
										
										
										
											2006-11-01 19:43:59 +01:00
										 |  |  | 						env.get_activity_info_dir())	 | 
					
						
							|  |  |  | 							 | 
					
						
							|  |  |  | 	bin = os.path.join(sourcedir, | 
					
						
							|  |  |  | 					  'services/clipboard/sugar-clipboard') | 
					
						
							|  |  |  | 	setup.write_service('org.laptop.Clipboard', bin, | 
					
						
							| 
									
										
										
										
											2006-10-17 10:25:47 +02:00
										 |  |  | 						env.get_activity_info_dir()) | 
					
						
							| 
									
										
										
										
											2006-10-16 13:35:07 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | from sugar.emulator import Emulator | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-10-16 17:22:05 +02:00
										 |  |  | 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) | 
					
						
							| 
									
										
										
										
											2006-10-16 13:35:07 +02:00
										 |  |  | emulator.start() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-11-02 20:16:36 +01:00
										 |  |  | if env.get_dbus_version() < '0.95': | 
					
						
							|  |  |  | 	if not os.path.isdir('/tmp/sugar-services'): | 
					
						
							|  |  |  | 		os.mkdir('/tmp/sugar-services') | 
					
						
							| 
									
										
										
										
											2006-11-05 03:41:44 +01:00
										 |  |  | 	dbus_config = env.get_dbus_config_094() | 
					
						
							|  |  |  | else: | 
					
						
							|  |  |  | 	dbus_config = env.get_dbus_config() | 
					
						
							| 
									
										
										
										
											2006-11-02 00:45:17 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-10-16 13:35:07 +02:00
										 |  |  | os.execlp('dbus-launch', 'dbus-launch', '--exit-with-session', | 
					
						
							| 
									
										
										
										
											2006-11-05 03:41:44 +01:00
										 |  |  | 		  '--config-file=%s' % dbus_config, program) |