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/sugar-launch') 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)) - -- cgit v0.9.1