Skip to content

Commit

Permalink
Fixed up GitClone to report version info.
Browse files Browse the repository at this point in the history
  • Loading branch information
Titus Brown committed Sep 4, 2009
1 parent 2372302 commit a1ea905
Showing 1 changed file with 56 additions and 36 deletions.
92 changes: 56 additions & 36 deletions client/pony_build_client.py
Expand Up @@ -141,6 +141,16 @@ def run(self, context):
def success(self):
return self.status == 0

def get_results(self):
results = dict(status=self.status,
output=self.output,
errout=self.errout,
command=str(self.command_list),
type=self.command_type,
name=self.command_name,
duration=self.duration)
return results

class SetupCommand(BaseCommand):
command_type = 'setup'

Expand All @@ -157,6 +167,9 @@ def __init__(self, repository, branch='master', cache_dir=None, **kwargs):
self.branch = branch
self.cache_dir = os.path.expanduser(cache_dir)
self.duration = -1
self.version_info = ''

self.results_dict = {}

def run(self, context):
# first, guess the co dir name
Expand All @@ -177,11 +190,12 @@ def run(self, context):
branchspec = '%s:%s' % (self.branch, self.branch)
cmdlist = ['git', 'fetch', '-ufv', self.repository, branchspec]
(ret, out, err) = _run_command(cmdlist)

self.results_dict['cache_update'] = \
dict(status=ret, output=out, errout=err,
command=str(cmdlist))

if ret != 0:
self.command_list = cmdlist
self.status = ret
self.output = out
self.errout = err
return

os.chdir(cwd)
Expand All @@ -197,23 +211,18 @@ def run(self, context):

cmdlist = ['git', 'clone', self.repository]
(ret, out, err) = _run_command(cmdlist)

self.results_dict['clone'] = \
dict(status=ret, output=out, errout=err,
command=str(cmdlist))
if ret != 0:
self.command_list = cmdlist
self.status = ret
self.output = out
self.errout = err

return

print cmdlist, out

if not os.path.exists(dirname) and os.path.isdir(dirname):
self.command_list = cmdlist
self.status = -1
self.output = ''
self.errout = 'pony-build-client cannot find expected git dir: %s' % (dirname,)

print 'wrong guess; %s does not exist. whoops' % (dirname,)
self.status = -1
return

##
Expand All @@ -225,30 +234,47 @@ def run(self, context):

print cmdlist, out

self.results_dict['checkout+origin'] = \
dict(status=ret, output=out, errout=err,
command=str(cmdlist), branch=self.branch)
if ret != 0:
self.command_list = cmdlist
self.status = ret
self.output = out
self.errout = err

return

cmdlist = ['git', 'checkout', '-b', self.branch]

print cmdlist, out

(ret, out, err) = _run_command(cmdlist, dirname)
self.results_dict['checkout+-b'] = \
dict(status=ret, output=out, errout=err,
command=str(cmdlist), branch=self.branch)
if ret != 0:
self.command_list = cmdlist
self.status = ret
self.output = out
self.errout = err

return

self.status = 0 # success
self.output = ''
self.errout = ''

# get some info on what our HEAD is
cmdlist = ['git', 'log', '-1', '--pretty=oneline']
(ret, out, err) = _run_command(cmdlist, dirname)

assert ret == 0

self.version_info = out.strip()

self.status = 0

def get_results(self):
self.results_dict['out'] = self.results_dict['errout'] = ''
self.results_dict['command'] = 'GitClone(%s, %s)' % (self.repository,
self.branch)
self.results_dict['status'] = self.status
self.results_dict['type'] = self.command_type
self.results_dict['name'] = self.command_name

self.results_dict['version_type'] = 'git'
if self.version_info:
self.results_dict['version_info'] = self.version_info

return self.results_dict

class SvnUpdate(SetupCommand):
def __init__(self, dirname, repository, cache_dir=None, **kwargs):
SetupCommand.__init__(self, [], **kwargs)
Expand Down Expand Up @@ -343,14 +369,8 @@ def do(name, commands, context=None, arch=None, stop_if_failure=True):
c.run(context)
if context:
context.end_command(c)
results = dict(status=c.status,
output=c.output,
errout=c.errout,
command=str(c.command_list),
type=c.command_type,
name=c.command_name,
duration=c.duration)
reslist.append(results)

reslist.append(c.get_results())

if stop_if_failure and not c.success():
break
Expand Down

0 comments on commit a1ea905

Please sign in to comment.