diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2008-02-04 19:36:09 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2008-02-04 19:36:09 (GMT) |
commit | dbe42ac6d9c0be6be47d2c7545b4997070b4621f (patch) | |
tree | b382b3af018c1ca407198db65f7332a9b17bb232 /bin | |
parent | 29fb25407fe0e6c4b3903405d612d48953293b54 (diff) |
Make the shell scripts just a tiny wrapper which setup
the python path and run main().
Diffstat (limited to 'bin')
-rw-r--r-- | bin/.gitignore | 3 | ||||
-rw-r--r--[-rwxr-xr-x] | bin/sugar-activity | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | bin/sugar-backup | 0 | ||||
-rwxr-xr-x | bin/sugar-control-panel | 87 | ||||
-rw-r--r-- | bin/sugar-control-panel.in | 26 | ||||
-rw-r--r--[-rwxr-xr-x] | bin/sugar-install-bundle | 0 | ||||
-rwxr-xr-x | bin/sugar-shell | 164 | ||||
-rw-r--r-- | bin/sugar-shell.in | 26 |
8 files changed, 54 insertions, 252 deletions
diff --git a/bin/.gitignore b/bin/.gitignore index 10c2d34..2a3ce74 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -1 +1,2 @@ -sugar-native-factory +sugar-control-panel +sugar-shell diff --git a/bin/sugar-activity b/bin/sugar-activity index c01b263..c01b263 100755..100644 --- a/bin/sugar-activity +++ b/bin/sugar-activity diff --git a/bin/sugar-backup b/bin/sugar-backup index c90da63..c90da63 100755..100644 --- a/bin/sugar-backup +++ b/bin/sugar-backup diff --git a/bin/sugar-control-panel b/bin/sugar-control-panel deleted file mode 100755 index 5399a55..0000000 --- a/bin/sugar-control-panel +++ /dev/null @@ -1,87 +0,0 @@ -#!/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. - -import sys -import getopt -from gettext import gettext as _ - -from sugar import env - -sys.path.insert(0, env.get_shell_path()) - -from controlpanel import control - -def cmd_help(): - print _('Usage: sugar-control-panel [ option ] key [ args ... ] \n\ - Control for the sugar environment. \n\ - Options: \n\ - -h show this help message and exit \n\ - -l list all the available options \n\ - -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\ - ') - -def main(): - try: - opts, args = getopt.getopt(sys.argv[1:], "h:s:g:l", []) - except getopt.GetoptError: - cmd_help() - sys.exit(2) - - output = None - verbose = False - - if not opts: - cmd_help() - sys.exit() - - for opt, key in opts: - if opt in ("-h"): - method = getattr(control, 'set_' + key, None) - if method is None: - print _("sugar-control-panel: key=%s not an available option"% key) - sys.exit() - else: - print method.__doc__ - if opt in ("-l"): - elems = dir(control) - for elem in elems: - if elem.startswith('set_'): - print elem[4:] - if opt in ("-g"): - method = getattr(control, 'print_' + key, None) - if method is None: - print _("sugar-control-panel: key=%s not an available option"% key) - sys.exit() - else: - method() - if opt in ("-s"): - method = getattr(control, 'set_' + key, None) - if method is None: - print _("sugar-control-panel: key=%s not an available option"% key) - sys.exit() - else: - try: - method(*args) - except Exception, e: - print _("sugar-control-panel: %s"% e) - -if __name__ == '__main__': - main() diff --git a/bin/sugar-control-panel.in b/bin/sugar-control-panel.in new file mode 100644 index 0000000..922f95c --- /dev/null +++ b/bin/sugar-control-panel.in @@ -0,0 +1,26 @@ +#!/usr/bin/env python +# Copyright (C) 2008, 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 sys + +sys.path.insert(0, '@prefix@/share/sugar/shell') + +from controlpanel.cmd import main + +main() + + diff --git a/bin/sugar-install-bundle b/bin/sugar-install-bundle index ce28977..ce28977 100755..100644 --- a/bin/sugar-install-bundle +++ b/bin/sugar-install-bundle diff --git a/bin/sugar-shell b/bin/sugar-shell deleted file mode 100755 index b8f44a3..0000000 --- a/bin/sugar-shell +++ /dev/null @@ -1,164 +0,0 @@ -#!/usr/bin/env 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 sys -import os -from ConfigParser import ConfigParser -import gettext - -# HACK we need to import numpy before gtk otherwise we traceback in -# some locales. See http://dev.laptop.org/ticket/5559. -import numpy - -import pygtk -pygtk.require('2.0') -import gtk -import gobject - -from sugar import env -from sugar import logger -from sugar.profile import get_profile - -sys.path.insert(0, env.get_shell_path()) - -from view.Shell import Shell -from model.shellmodel import ShellModel -from shellservice import ShellService -from hardware import hardwaremanager -from intro import intro -import logsmanager -import config - -def _start_matchbox(): - cmd = ['matchbox-window-manager'] - - cmd.extend(['-use_titlebar', 'no']) - cmd.extend(['-theme', 'sugar']) - cmd.extend(['-kbdconfig', env.get_shell_path('kbdconfig')]) - - gobject.spawn_async(cmd, flags=gobject.SPAWN_SEARCH_PATH) - -def _save_session_info(): - # 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 - # - session_info_file = os.path.join(env.get_profile_path(), "session.info") - f = open(session_info_file, "w") - - cp = ConfigParser() - cp.add_section('Session') - cp.set('Session', 'dbus_address', os.environ['DBUS_SESSION_BUS_ADDRESS']) - cp.set('Session', 'display', gtk.gdk.display_get_default().get_name()) - cp.write(f) - - f.close() - -def _setup_translations(): - locale_path = os.path.join(config.prefix, 'share', 'locale') - domain = 'sugar' - - gettext.bindtextdomain(domain, locale_path) - gettext.textdomain(domain) - -def check_cm(bus_name): - try: - import dbus - bus = dbus.SessionBus() - bus_object = bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus') - name = bus_object.GetNameOwner(bus_name, dbus_interface='org.freedesktop.DBus') - if name: - return True - except dbus.DBusException: - pass - return False - -def _shell_started_cb(): - # Unfreeze the display - hw_manager = hardwaremanager.get_manager() - hw_manager.set_dcon_freeze(0) - -def main(): - gobject.idle_add(_shell_started_cb) - - logsmanager.setup() - logger.start('shell') - - _save_session_info() - _start_matchbox() - _setup_translations() - - icons_path = env.get_data_path('icons') - gtk.icon_theme_get_default().append_search_path(icons_path) - - # Do initial setup if needed - if not get_profile().is_valid(): - win = intro.IntroWindow() - win.show_all() - gtk.main() - - if os.environ.has_key("SUGAR_TP_DEBUG"): - # Allow the user time to start up telepathy connection managers - # using the Sugar DBus bus address - import time - from telepathy.client import ManagerRegistry - - registry = ManagerRegistry() - registry.LoadManagers() - - debug_flags = os.environ["SUGAR_TP_DEBUG"].split(',') - for cm_name in debug_flags: - if cm_name not in ["gabble", "salut"]: - continue - - try: - cm = registry.services[cm_name] - except KeyError: - print RuntimeError("%s connection manager not found!" % cm_name) - - while not check_cm(cm['busname']): - print "Waiting for %s on: DBUS_SESSION_BUS_ADDRESS=%s" %(cm_name, os.environ["DBUS_SESSION_BUS_ADDRESS"]) - try: - time.sleep(5) - except KeyboardInterrupt: - print "Got Ctrl+C, continuing..." - break - - model = ShellModel() - shell = Shell(model) - service = ShellService(shell) - -if __name__ == '__main__': - # running the gtk.main outside of the main() function allows us to - # profile startup times. To profile startup times replace the following - # call to main with: - # import cProfile - # cProfile.run('main()', '/home/olpc/sugar-startup.stats') - - main() - - hw_manager = hardwaremanager.get_manager() - hw_manager.startup() - - try: - gtk.main() - except KeyboardInterrupt: - print 'Ctrl+C pressed, exiting...' - - session_info_file = os.path.join(env.get_profile_path(), "session.info") - os.remove(session_info_file) - diff --git a/bin/sugar-shell.in b/bin/sugar-shell.in new file mode 100644 index 0000000..2b73c4a --- /dev/null +++ b/bin/sugar-shell.in @@ -0,0 +1,26 @@ +#!/usr/bin/env python +# Copyright (C) 2008, 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 sys + +sys.path.insert(0, '@prefix@/share/sugar/shell') + +from main import main + +main() + + |