0
|
1 |
#!/usr/bin/env python
|
|
2 |
# -*- coding: utf-8 -*-
|
|
3 |
|
|
4 |
##############################################################################
|
|
5 |
# ensymble.py - Ensymble command line tool
|
|
6 |
# Copyright 2006, 2007, 2008, 2009 Jussi Ylänen
|
|
7 |
#
|
|
8 |
# This file is part of Ensymble developer utilities for Symbian OS(TM).
|
|
9 |
#
|
|
10 |
# Ensymble is free software; you can redistribute it and/or modify
|
|
11 |
# it under the terms of the GNU General Public License as published by
|
|
12 |
# the Free Software Foundation; either version 2 of the License, or
|
|
13 |
# (at your option) any later version.
|
|
14 |
#
|
|
15 |
# Ensymble is distributed in the hope that it will be useful,
|
|
16 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
17 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
18 |
# GNU General Public License for more details.
|
|
19 |
#
|
|
20 |
# You should have received a copy of the GNU General Public License
|
|
21 |
# along with Ensymble; if not, write to the Free Software
|
|
22 |
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
23 |
##############################################################################
|
|
24 |
|
|
25 |
import sys
|
|
26 |
import os
|
|
27 |
|
|
28 |
# Import command modules.
|
|
29 |
cmddict = {"altere32": None, "genuid": None,
|
|
30 |
"infoe32": None, "mergesis": None,
|
|
31 |
"py2sis": None, "signsis": None,
|
|
32 |
"simplesis": None, "version": None}
|
|
33 |
for cmdname in cmddict.keys():
|
|
34 |
cmddict[cmdname] = __import__("cmd_%s" % cmdname, globals(), locals(), [])
|
|
35 |
|
|
36 |
|
|
37 |
def main():
|
|
38 |
pgmname = os.path.basename(sys.argv[0])
|
|
39 |
debug = False
|
|
40 |
|
|
41 |
# Parse command line parameters.
|
|
42 |
try:
|
|
43 |
if len(sys.argv) < 2 or sys.argv[1] in ("-h", "--help"):
|
|
44 |
# No command given, print help.
|
|
45 |
commands = []
|
|
46 |
for cmd in cmddict.keys():
|
|
47 |
commands.append(" %-12s %s" % (cmd, cmddict[cmd].shorthelp))
|
|
48 |
commands.sort()
|
|
49 |
commands = "\n".join(commands)
|
|
50 |
|
|
51 |
print (
|
|
52 |
'''
|
|
53 |
Ensymble developer utilities for Symbian OS
|
|
54 |
|
|
55 |
usage: %(pgmname)s command [command options]...
|
|
56 |
|
|
57 |
Commands:
|
|
58 |
%(commands)s
|
|
59 |
|
|
60 |
Use '%(pgmname)s command --help' to get command specific help.
|
|
61 |
''' % locals())
|
|
62 |
return 0
|
|
63 |
|
|
64 |
command = sys.argv[1]
|
|
65 |
if command not in cmddict.keys():
|
|
66 |
raise ValueError("invalid command '%s'" % command)
|
|
67 |
|
|
68 |
if "-h" in sys.argv[2:] or "--help" in sys.argv[2:]:
|
|
69 |
# Print command specific help.
|
|
70 |
longhelp = cmddict[command].longhelp
|
|
71 |
print (
|
|
72 |
'''
|
|
73 |
Ensymble developer utilities for Symbian OS
|
|
74 |
|
|
75 |
usage: %(pgmname)s %(longhelp)s''' % locals())
|
|
76 |
else:
|
|
77 |
if "--debug" in sys.argv[2:]:
|
|
78 |
# Enable raw exception reporting.
|
|
79 |
debug = True
|
|
80 |
|
|
81 |
# Run command.
|
|
82 |
cmddict[command].run(pgmname, sys.argv[2:])
|
|
83 |
except Exception, e:
|
|
84 |
if debug:
|
|
85 |
# Debug output requested, print exception traceback as-is.
|
|
86 |
raise
|
|
87 |
else:
|
|
88 |
# Normal output, use terse exception reporting.
|
|
89 |
return "%s: %s" % (pgmname, str(e))
|
|
90 |
|
|
91 |
return 0
|
|
92 |
|
|
93 |
# Call main if run as stand-alone executable.
|
|
94 |
#if __name__ == '__main__':
|
|
95 |
# sys.exit(main())
|
|
96 |
|
|
97 |
# Call main regardless, to support packing with the squeeze utility.
|
|
98 |
sys.exit(main())
|