From: JF Ding Date: Mon, 28 Nov 2011 06:35:04 +0000 (+0800) Subject: smarter sh script wrapper X-Git-Tag: v0.1~65 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2b4f667aa446eda8a154f2f7108219450fb27dee;p=tools%2Fgbs.git smarter sh script wrapper --- diff --git a/tizenpkg/conf.py b/tizenpkg/conf.py index c945c49..0dd6352 100644 --- a/tizenpkg/conf.py +++ b/tizenpkg/conf.py @@ -16,6 +16,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # Temple Place - Suite 330, Boston, MA 02111-1307, USA. +from __future__ import with_statement import os, sys from ConfigParser import * import msger diff --git a/tools/tizenpkg b/tools/tizenpkg index 3122d3d..d41e34e 100755 --- a/tools/tizenpkg +++ b/tools/tizenpkg @@ -24,6 +24,24 @@ from tizenpkg.__version__ import VERSION from tizenpkg import msger, cmdln, errors, utils, runner from tizenpkg.conf import configmgr +def _fall_to_shell(cmdname): + def raw_wrapper(f): + return f + + def sh_wrapper(f): + def _run_embed_sh(self, argv): + # this command is a shell script wrapper + shpath = os.path.join(utils.get_share_dir(), cmdname + '.sh') + runner.embed(['sh', shpath] + list(argv)) + return _run_embed_sh + + cmdmod = 'tizenpkg.cmd_' + cmdname + try: + __import__(cmdmod) + return raw_wrapper + except ImportError: + return sh_wrapper + class TizenPkg(cmdln.Cmdln): """ Usage: tizenpkg [GLOBAL-OPTS] SUBCOMMAND [OPTS] [ARGS...] @@ -53,7 +71,10 @@ class TizenPkg(cmdln.Cmdln): msger.set_loglevel('debug') @cmdln.alias("bl") - def do_build(self, argv): + @cmdln.option('-s', '--silent', action='store_true', + help='run in slient mode') + @_fall_to_shell('build') + def do_build(self, subcmd, opts, *args): """${cmd_name}: test building for current pkg Usage: @@ -62,13 +83,12 @@ class TizenPkg(cmdln.Cmdln): ${cmd_option_list} """ - print configmgr.get('hudson_user') - print configmgr.get('hudson_pass') - #from tizenpkg import build - #build.do() + from tizenpkg import cmd_build as cmd + cmd.do(opts, args) @cmdln.alias("pk") - def do_packaging(self, argv): + @_fall_to_shell('packaging') + def do_packaging(self, subcmd, opts, *args): """${cmd_name}: prepare packaging files for current pkg Usage: @@ -77,9 +97,8 @@ class TizenPkg(cmdln.Cmdln): ${cmd_option_list} """ - # this command is a shell script wrapper - shpath = os.path.join(utils.get_share_dir(), 'packaging.sh') - runner.embed(['sh', shpath] + argv) + from tizenpkg import cmd_packaging as cmd + cmd.do(opts, args) if __name__ == '__main__': try: