| 
									
										
										
										
											2007-10-29 14:36:14 +01:00
										 |  |  | #!/usr/bin/env python | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Copyright (C) 2007, One Laptop Per Child | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # This library is free software; you can redistribute it and/or | 
					
						
							|  |  |  | # modify it under the terms of the GNU Lesser General Public | 
					
						
							|  |  |  | # License as published by the Free Software Foundation; either | 
					
						
							|  |  |  | # version 2 of the License, or (at your option) any later version. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # This library 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 | 
					
						
							|  |  |  | # Lesser General Public License for more details. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # You should have received a copy of the GNU Lesser General Public | 
					
						
							|  |  |  | # License along with this library; if not, write to the | 
					
						
							|  |  |  | # Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 
					
						
							|  |  |  | # Boston, MA 02111-1307, USA. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-31 00:05:16 +01:00
										 |  |  | import sys | 
					
						
							|  |  |  | import getopt | 
					
						
							| 
									
										
										
										
											2007-11-01 12:37:43 +01:00
										 |  |  | from gettext import gettext as _ | 
					
						
							| 
									
										
										
										
											2007-10-31 00:05:16 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-31 10:36:38 +01:00
										 |  |  | from sugar import env | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-31 00:05:16 +01:00
										 |  |  | sys.path.insert(0, env.get_shell_path()) | 
					
						
							|  |  |  |   | 
					
						
							| 
									
										
										
										
											2007-10-31 11:32:54 +01:00
										 |  |  | from controlpanel import control | 
					
						
							| 
									
										
										
										
											2007-10-29 14:36:14 +01:00
										 |  |  |          | 
					
						
							|  |  |  | def cmd_help(): | 
					
						
							| 
									
										
										
										
											2007-11-01 12:37:43 +01:00
										 |  |  |     print _('Usage: sugar-control-panel [ option ] key [ args ... ] \n\ | 
					
						
							| 
									
										
										
										
											2007-10-29 14:36:14 +01:00
										 |  |  |     Control for the sugar environment. \n\ | 
					
						
							|  |  |  |     Options: \n\ | 
					
						
							| 
									
										
										
										
											2007-11-01 12:37:43 +01:00
										 |  |  |     -h           show this help message and exit \n\ | 
					
						
							|  |  |  |     -l           list all the available options \n\ | 
					
						
							| 
									
										
										
										
											2007-10-29 14:36:14 +01:00
										 |  |  |     -h key       show information about this key \n\ | 
					
						
							|  |  |  |     -g key       get the current value of the key \n\ | 
					
						
							|  |  |  |     -s key       set the current value for the key \n\ | 
					
						
							| 
									
										
										
										
											2007-11-01 12:37:43 +01:00
										 |  |  |     ') | 
					
						
							| 
									
										
										
										
											2007-10-29 14:36:14 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | def main(): | 
					
						
							|  |  |  |     try: | 
					
						
							| 
									
										
										
										
											2007-11-01 12:37:43 +01:00
										 |  |  |         opts, args = getopt.getopt(sys.argv[1:], "h:s:g:l", []) | 
					
						
							| 
									
										
										
										
											2007-10-29 14:36:14 +01:00
										 |  |  |     except getopt.GetoptError: | 
					
						
							|  |  |  |         cmd_help() | 
					
						
							|  |  |  |         sys.exit(2) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     output = None | 
					
						
							|  |  |  |     verbose = False | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-11-01 12:37:43 +01:00
										 |  |  |     if not opts: | 
					
						
							|  |  |  |         cmd_help() | 
					
						
							|  |  |  |         sys.exit() | 
					
						
							|  |  |  |          | 
					
						
							| 
									
										
										
										
											2007-10-29 14:36:14 +01:00
										 |  |  |     for opt, key in opts: | 
					
						
							|  |  |  |         if opt in ("-h"):             | 
					
						
							|  |  |  |             method = getattr(control, 'set_' + key, None) | 
					
						
							|  |  |  |             if method is None: | 
					
						
							| 
									
										
										
										
											2007-11-01 12:37:43 +01:00
										 |  |  |                 print _("sugar-control-panel: key=%s not an available option"% key) | 
					
						
							| 
									
										
										
										
											2007-10-29 14:36:14 +01:00
										 |  |  |                 sys.exit() | 
					
						
							|  |  |  |             else:     | 
					
						
							| 
									
										
										
										
											2007-11-01 12:37:43 +01:00
										 |  |  |                 print method.__doc__ | 
					
						
							|  |  |  |         if opt in ("-l"): | 
					
						
							|  |  |  |             elems = dir(control) | 
					
						
							|  |  |  |             for elem in elems: | 
					
						
							|  |  |  |                 if elem.startswith('set_'): | 
					
						
							|  |  |  |                     print elem[4:] | 
					
						
							| 
									
										
										
										
											2007-10-29 14:36:14 +01:00
										 |  |  |         if opt in ("-g"): | 
					
						
							|  |  |  |             method = getattr(control, 'print_' + key, None) | 
					
						
							|  |  |  |             if method is None: | 
					
						
							| 
									
										
										
										
											2007-11-01 12:37:43 +01:00
										 |  |  |                 print _("sugar-control-panel: key=%s not an available option"% key) | 
					
						
							| 
									
										
										
										
											2007-10-29 14:36:14 +01:00
										 |  |  |                 sys.exit() | 
					
						
							|  |  |  |             else:     | 
					
						
							|  |  |  |                 method() | 
					
						
							|  |  |  |         if opt in ("-s"): | 
					
						
							|  |  |  |             method = getattr(control, 'set_' + key, None) | 
					
						
							|  |  |  |             if method is None: | 
					
						
							| 
									
										
										
										
											2007-11-01 12:37:43 +01:00
										 |  |  |                 print _("sugar-control-panel: key=%s not an available option"% key) | 
					
						
							| 
									
										
										
										
											2007-10-29 14:36:14 +01:00
										 |  |  |                 sys.exit() | 
					
						
							|  |  |  |             else: | 
					
						
							|  |  |  |                 try: | 
					
						
							|  |  |  |                     method(*args) | 
					
						
							|  |  |  |                 except Exception, e: | 
					
						
							| 
									
										
										
										
											2007-11-01 12:37:43 +01:00
										 |  |  |                     print _("sugar-control-panel: %s"% e) | 
					
						
							| 
									
										
										
										
											2007-10-29 14:36:14 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     main() |