diff -r 000000000000 -r ca70ae20a155 src/tools/py2sis/ensymble/cmdmain.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/tools/py2sis/ensymble/cmdmain.py Tue Feb 16 10:07:05 2010 +0530 @@ -0,0 +1,98 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +############################################################################## +# ensymble.py - Ensymble command line tool +# Copyright 2006, 2007, 2008, 2009 Jussi Ylänen +# +# This file is part of Ensymble developer utilities for Symbian OS(TM). +# +# Ensymble 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. +# +# Ensymble 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 Ensymble; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################## + +import sys +import os + +# Import command modules. +cmddict = {"altere32": None, "genuid": None, + "infoe32": None, "mergesis": None, + "py2sis": None, "signsis": None, + "simplesis": None, "version": None} +for cmdname in cmddict.keys(): + cmddict[cmdname] = __import__("cmd_%s" % cmdname, globals(), locals(), []) + + +def main(): + pgmname = os.path.basename(sys.argv[0]) + debug = False + + # Parse command line parameters. + try: + if len(sys.argv) < 2 or sys.argv[1] in ("-h", "--help"): + # No command given, print help. + commands = [] + for cmd in cmddict.keys(): + commands.append(" %-12s %s" % (cmd, cmddict[cmd].shorthelp)) + commands.sort() + commands = "\n".join(commands) + + print ( +''' +Ensymble developer utilities for Symbian OS + +usage: %(pgmname)s command [command options]... + +Commands: +%(commands)s + +Use '%(pgmname)s command --help' to get command specific help. +''' % locals()) + return 0 + + command = sys.argv[1] + if command not in cmddict.keys(): + raise ValueError("invalid command '%s'" % command) + + if "-h" in sys.argv[2:] or "--help" in sys.argv[2:]: + # Print command specific help. + longhelp = cmddict[command].longhelp + print ( +''' +Ensymble developer utilities for Symbian OS + +usage: %(pgmname)s %(longhelp)s''' % locals()) + else: + if "--debug" in sys.argv[2:]: + # Enable raw exception reporting. + debug = True + + # Run command. + cmddict[command].run(pgmname, sys.argv[2:]) + except Exception, e: + if debug: + # Debug output requested, print exception traceback as-is. + raise + else: + # Normal output, use terse exception reporting. + return "%s: %s" % (pgmname, str(e)) + + return 0 + +# Call main if run as stand-alone executable. +#if __name__ == '__main__': +# sys.exit(main()) + +# Call main regardless, to support packing with the squeeze utility. +sys.exit(main())