| 
									
										
										
										
											2007-01-20 13:38:58 +01:00
										 |  |  | #!/usr/bin/env python | 
					
						
							| 
									
										
										
										
											2006-05-12 08:34:20 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-10-15 01:24:45 +02:00
										 |  |  | # 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-10-17 09:39:31 +02:00
										 |  |  | import sys | 
					
						
							|  |  |  | import os | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-02-03 19:41:00 +01:00
										 |  |  | if len(sys.argv) == 2: | 
					
						
							|  |  |  |     sys.path.insert(0, sys.argv[1]) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-27 10:35:59 +02:00
										 |  |  | import pygtk | 
					
						
							|  |  |  | pygtk.require('2.0') | 
					
						
							| 
									
										
										
										
											2006-10-16 13:34:43 +02:00
										 |  |  | import gtk | 
					
						
							| 
									
										
										
										
											2006-10-29 06:33:42 +01:00
										 |  |  | import gobject | 
					
						
							| 
									
										
										
										
											2006-10-16 13:34:43 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-10-18 00:08:14 +02:00
										 |  |  | from sugar import logger | 
					
						
							| 
									
										
										
										
											2006-10-16 13:34:43 +02:00
										 |  |  | from sugar import profile | 
					
						
							| 
									
										
										
										
											2006-10-17 09:39:31 +02:00
										 |  |  | from sugar import env | 
					
						
							| 
									
										
										
										
											2006-10-16 13:34:43 +02:00
										 |  |  | from sugar import TracebackUtils | 
					
						
							| 
									
										
										
										
											2006-10-17 09:39:31 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-10-24 20:00:14 +02:00
										 |  |  | logger.cleanup() | 
					
						
							| 
									
										
										
										
											2006-10-18 00:08:14 +02:00
										 |  |  | logger.start('shell') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-02-03 19:41:00 +01:00
										 |  |  | if len(sys.argv) == 1: | 
					
						
							|  |  |  |     sys.path.insert(0, os.path.join(env.get_data_dir(), 'shell')) | 
					
						
							| 
									
										
										
										
											2006-10-17 09:39:31 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-10-16 13:34:43 +02:00
										 |  |  | from view.FirstTimeDialog import FirstTimeDialog | 
					
						
							|  |  |  | from view.Shell import Shell | 
					
						
							|  |  |  | from model.ShellModel import ShellModel | 
					
						
							| 
									
										
										
										
											2007-01-27 12:54:56 +01:00
										 |  |  | from shellservice import ShellService | 
					
						
							| 
									
										
										
										
											2006-10-16 13:34:43 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | name = profile.get_nick_name()  | 
					
						
							|  |  |  | if not name or not len(name): | 
					
						
							|  |  |  | 	dialog = FirstTimeDialog() | 
					
						
							|  |  |  | 	dialog.run() | 
					
						
							| 
									
										
										
										
											2006-10-17 14:31:04 +02:00
										 |  |  | 	profile.update() | 
					
						
							| 
									
										
										
										
											2006-10-16 13:34:43 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-12-14 23:21:25 +01:00
										 |  |  | # Save our DBus Session Bus address somewhere it can be found | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # WARNING!!! this is going away at some near future point, do not rely on it | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | dsba_file = os.path.join(env.get_profile_path(), "session_bus_address") | 
					
						
							|  |  |  | f = open(dsba_file, "w") | 
					
						
							|  |  |  | f.write(os.environ["DBUS_SESSION_BUS_ADDRESS"]) | 
					
						
							|  |  |  | f.close() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-10-16 13:34:43 +02:00
										 |  |  | model = ShellModel() | 
					
						
							| 
									
										
										
										
											2007-01-27 12:54:56 +01:00
										 |  |  | service = ShellService(model) | 
					
						
							| 
									
										
										
										
											2006-10-16 13:34:43 +02:00
										 |  |  | shell = Shell(model) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-10-29 06:33:42 +01:00
										 |  |  | # Start the NetworkManager applet | 
					
						
							|  |  |  | # FIXME: do this somewhere else, better planned out | 
					
						
							|  |  |  | args = ["sugar-nm-applet"] | 
					
						
							|  |  |  | flags = gobject.SPAWN_SEARCH_PATH | 
					
						
							|  |  |  | result = gobject.spawn_async(args, flags=flags, standard_output=False) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-10-16 13:34:43 +02:00
										 |  |  | tbh = TracebackUtils.TracebackHelper() | 
					
						
							|  |  |  | try: | 
					
						
							|  |  |  | 	gtk.main() | 
					
						
							|  |  |  | except KeyboardInterrupt: | 
					
						
							|  |  |  | 	print 'Ctrl+C pressed, exiting...' | 
					
						
							|  |  |  | del tbh | 
					
						
							| 
									
										
										
										
											2006-12-14 23:21:25 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | os.remove(dsba_file) |