raise ImportError('skip me')
+import os
+import tarfile
+
+import git
+import runner
+import msger
+import srcserver as ss
+
def do(opts, args):
- print opts, args
+ if not os.path.isdir('.git'):
+ msger.error('must run this command under a git tree')
+
+ if git.branch(all=False, current=True)[0] != 'release':
+ msger.error('must run this command under release branch')
+
+ gitsts = git.status()
+ if 'M ' in gitsts or ' M' in gitsts:
+ msger.warning('local changes not committed')
+
+ params = {'parameter': []}
+
+ # pkg:prjname
+ giturl = git.config('remote.origin.url')
+ prjname = os.path.basename(giturl)
+ params['parameter'].append({"name": "pkg",
+ "value": prjname})
+
+ # obsproject:obsprj
+ params['parameter'].append({"name": "parameters",
+ "value": "obsproject='%s'" %opts.obsprj})
+
+ # prepare package.tar.bz2
+ tarfp = 'package.tar.bz2'
+ tar = tarfile.open(tarfp, 'w:bz2')
+ for f in git.ls_files():
+ tar.add(f)
+ tar.close()
+
+ params['parameter'].append({"name": tarfp,
+ "file": "file0"})
+
+ msger.info("Submiting your changes to build server ...")
+ ss.build_trigger(params, tarfp)
+
+ time.sleep(0.5)
+ result = ss.build_mylastresult()
+
+ if result['result'] != 'SUCCESS':
+ msger.error('remote server exception')
+
+ os.remove(tarfp)
+ msger.info('your local changes has been submitted to build server.')
msger.set_loglevel('debug')
@cmdln.alias("bl")
- @cmdln.option('-s', '--silent', action='store_true',
- help='run in slient mode')
+ @cmdln.option('-p', '--obsprj', default='',
+ help='The corresponding project name in remote OBS server. ' \
+ 'If not specified, "home:<userid>:branches:Trunk" will' \
+ ' be used.')
@_fall_to_shell('build')
def do_build(self, subcmd, opts, *args):
"""${cmd_name}: test building for current pkg
Usage:
- tizenpkg build
+ tizenpkg build [OBS_project]
${cmd_option_list}
"""
cmd.do(opts, args)
@cmdln.alias("pk")
+ @cmdln.option('-s', '--silent', action='store_true',
+ help='run in slient mode')
@_fall_to_shell('packaging')
def do_packaging(self, subcmd, opts, *args):
"""${cmd_name}: prepare packaging files for current pkg