From 488402df7d37cf68d421229968632696a2a97bd7 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Wed, 06 Feb 2008 09:20:33 +0000 Subject: Split sugar-toolkit out of sugar shell. --- (limited to 'bin') diff --git a/bin/.gitignore b/bin/.gitignore deleted file mode 100644 index 99544b2..0000000 --- a/bin/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -sugar-control-panel -sugar-emulator -sugar-shell -sugar-shell-service diff --git a/bin/Makefile.am b/bin/Makefile.am deleted file mode 100644 index ca6ddef..0000000 --- a/bin/Makefile.am +++ /dev/null @@ -1,14 +0,0 @@ -bin_SCRIPTS = \ - sugar \ - sugar-activity \ - sugar-backup \ - sugar-control-panel \ - sugar-emulator \ - sugar-install-bundle \ - sugar-launch \ - sugar-shell \ - sugar-shell-service - -EXTRA_DIST = $(bin_SCRIPTS) sugar.in - -DISTCLEANFILES = sugar diff --git a/bin/sugar-activity b/bin/sugar-activity deleted file mode 100644 index c01b263..0000000 --- a/bin/sugar-activity +++ /dev/null @@ -1,149 +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 os -import sys -import gettext -from optparse import OptionParser - -import pygtk -pygtk.require('2.0') -import gtk -import dbus -import dbus.service -import dbus.glib - -from sugar.activity import activityhandle -from sugar.bundle.activitybundle import ActivityBundle -from sugar import _sugarbaseext -from sugar import logger - -activity_instances = [] - -def activity_destroy_cb(window): - activity_instances.remove(window) - if len(activity_instances) == 0: - gtk.main_quit() - -def create_activity_instance(constructor, handle): - activity = constructor(handle) - activity.connect('destroy', activity_destroy_cb) - activity.show() - - activity_instances.append(activity) - -def get_single_process_name(bundle_id): - return bundle_id - -def get_single_process_path(bundle_id): - return '/' + bundle_id.replace('.', '/') - -class SingleProcess(dbus.service.Object): - def __init__(self, service_name, constructor): - self.constructor = constructor - - bus = dbus.SessionBus() - bus_name = dbus.service.BusName(service_name, bus = bus) - object_path = get_single_process_path(service_name) - dbus.service.Object.__init__(self, bus_name, object_path) - - @dbus.service.method("org.laptop.SingleProcess", in_signature="a{ss}") - def create(self, handle_dict): - handle = activityhandle.create_from_dict(handle_dict) - create_activity_instance(self.constructor, handle) - -parser = OptionParser() -parser.add_option("-b", "--bundle-id", dest="bundle_id", - help="identifier of the activity bundle") -parser.add_option("-a", "--activity-id", dest="activity_id", - help="identifier of the activity instance") -parser.add_option("-o", "--object-id", dest="object_id", - help="identifier of the associated datastore object") -parser.add_option("-u", "--uri", dest="uri", - help="URI to load") -parser.add_option('-s', '--single-process', dest='single_process', - action='store_true', - help='start all the instances in the same process') -(options, args) = parser.parse_args() - -logger.start() - -if 'SUGAR_BUNDLE_PATH' not in os.environ: - print 'SUGAR_BUNDLE_PATH is not defined in the environment.' - sys.exit(1) - -if len(args) == 0: - print 'A python class must be specified as first argument.' - sys.exit(1) - -bundle_path = os.environ['SUGAR_BUNDLE_PATH'] -sys.path.append(bundle_path) - -bundle = ActivityBundle(bundle_path) - -os.environ['SUGAR_BUNDLE_ID'] = bundle.get_bundle_id() -os.environ['SUGAR_BUNDLE_NAME'] = bundle.get_name() - -gtk.icon_theme_get_default().append_search_path(bundle.get_icons_path()) - -gettext.bindtextdomain(bundle.get_bundle_id(), - bundle.get_locale_path()) -gettext.textdomain(bundle.get_bundle_id()) - -splitted_module = args[0].rsplit('.', 1) -module_name = splitted_module[0] -class_name = splitted_module[1] - -module = __import__(module_name) -for comp in module_name.split('.')[1:]: - module = getattr(module, comp) - -constructor = getattr(module, class_name) -handle = activityhandle.ActivityHandle( - activity_id=options.activity_id, - object_id=options.object_id, uri=options.uri) - -if options.single_process is True: - bus = dbus.SessionBus() - - service_name = get_single_process_name(options.bundle_id) - service_path = get_single_process_path(options.bundle_id) - - bus_object = bus.get_object( - 'org.freedesktop.DBus', '/org/freedesktop/DBus') - try: - name = bus_object.GetNameOwner( - service_name, dbus_interface='org.freedesktop.DBus') - except dbus.DBusException: - name = None - - if not name: - service = SingleProcess(service_name, constructor) - else: - single_process = bus.get_object(service_name, service_path) - single_process.create(handle.get_dict()) - - print 'Created %s in a single process.' % service_name - sys.exit(0) - -if hasattr(module, 'start'): - module.start() - -create_activity_instance(constructor, handle) - -gtk.main() diff --git a/bin/sugar-backup b/bin/sugar-backup deleted file mode 100644 index c90da63..0000000 --- a/bin/sugar-backup +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env python - -import sys -import time - -i = 0 -while i <= 100: - time.sleep(0.5) - sys.stdout.write('%d\n' % i) - sys.stdout.flush() - i += 5 diff --git a/bin/sugar-control-panel.in b/bin/sugar-control-panel.in deleted file mode 100644 index 922f95c..0000000 --- a/bin/sugar-control-panel.in +++ /dev/null @@ -1,26 +0,0 @@ -#!/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-emulator.in b/bin/sugar-emulator.in deleted file mode 100644 index 1ee6fc5..0000000 --- a/bin/sugar-emulator.in +++ /dev/null @@ -1,26 +0,0 @@ -#!/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 emulator import main - -main() - - diff --git a/bin/sugar-install-bundle b/bin/sugar-install-bundle deleted file mode 100644 index ce28977..0000000 --- a/bin/sugar-install-bundle +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env python -import sys - -from sugar.bundle.activitybundle import ActivityBundle - -from dbus.mainloop.glib import DBusGMainLoop -DBusGMainLoop(set_as_default=True) - -bundle = ActivityBundle(sys.argv[1]) -bundle.install() - -print "%s: '%s' installed." % (sys.argv[0], sys.argv[1]) diff --git a/bin/sugar-launch b/bin/sugar-launch deleted file mode 100644 index a0a5387..0000000 --- a/bin/sugar-launch +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/env python - -# Copyright (C) 2007, 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 -from optparse import OptionParser - -from sugar import env -from sugar.activity import activityfactory -from sugar.activity.registry import get_registry - -usage = "usage: %prog [options] activity" -parser = OptionParser(usage) -parser.add_option("-d", "--debug", action="store_true", dest="debug", - help="launch activity inside gdb") -(options, args) = parser.parse_args() - -if len(args) == 0: - print 'You need to specify the activity name or part of it.' - sys.exit(1) - -registry = get_registry() -activities = registry.find_activity(args[0]) -if len(activities) == 0: - print 'Activity not found.' - -activity = activities[0] -cmd_args = activityfactory.get_command(activity) - -def _which(exec_file): - if 'PATH' in os.environ: - envpath = os.environ['PATH'] - else: - envpath = defpath - - for path in envpath.split(os.pathsep): - fullname = os.path.join(path, exec_file) - if os.path.exists(fullname): - return fullname - - return None - -def _get_interpreter(exec_file): - if os.path.exists(exec_file): - abs_path = exec_file - else: - abs_path = _which(exec_file) - if not abs_path: - return exec_file - - f = open(abs_path) - line = f.readline(100) - if line.startswith('#!'): - cmds = line[2:].strip().split(' ') - cmds.append(abs_path) - - if '/usr/bin/env' in cmds: - cmds.remove('/usr/bin/env') - - return cmds - - return exec_file - -if options.debug: - act_args = cmd_args - cmd_args = ['gdb', '--args'] - cmd_args.extend(_get_interpreter(act_args.pop(0))) - cmd_args.extend(act_args) - -os.execvpe(cmd_args[0], cmd_args, activityfactory.get_environment(activity)) - diff --git a/bin/sugar-shell-service.in b/bin/sugar-shell-service.in deleted file mode 100644 index e88ea65..0000000 --- a/bin/sugar-shell-service.in +++ /dev/null @@ -1,26 +0,0 @@ -#!/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/service') - -from main import main - -main() - - diff --git a/bin/sugar-shell.in b/bin/sugar-shell.in deleted file mode 100644 index 2b73c4a..0000000 --- a/bin/sugar-shell.in +++ /dev/null @@ -1,26 +0,0 @@ -#!/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() - - diff --git a/bin/sugar.in b/bin/sugar.in deleted file mode 100644 index 88b4168..0000000 --- a/bin/sugar.in +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -export GTK2_RC_FILES=@prefix@/share/sugar/data/sugar-xo.gtkrc -if [ -f /etc/olpc-security ] ; then - exec dbus-launch --exit-with-session --config-file=/etc/dbus-1/session-olpc.conf sugar-shell -else - exec dbus-launch --exit-with-session sugar-shell -fi -- cgit v0.9.1