Patch in some other useful scripts from trunk.
parent
d508beb044
commit
5f3a7fa6f3
|
|
@ -1,7 +1,7 @@
|
|||
"""@file llversion.py
|
||||
@brief Utility for parsing llcommon/llversion${server}.h
|
||||
for the version string and channel string
|
||||
Utility that parses svn info for branch and revision
|
||||
Utility that parses hg or svn info for branch and revision
|
||||
|
||||
$LicenseInfo:firstyear=2006&license=mit$
|
||||
|
||||
|
|
@ -79,8 +79,8 @@ def get_svn_status_matching(regular_expression):
|
|||
status, output = commands.getstatusoutput('svn info %s' % get_src_root())
|
||||
m = regular_expression.search(output)
|
||||
if not m:
|
||||
print "Failed to parse svn info output, resultfollows:"
|
||||
print output
|
||||
print >> sys.stderr, "Failed to parse svn info output, result follows:"
|
||||
print >> sys.stderr, output
|
||||
raise Exception, "No matching svn status in "+src_root
|
||||
return m.group(1)
|
||||
|
||||
|
|
@ -92,4 +92,25 @@ def get_svn_revision():
|
|||
last_rev_re = re.compile('Last Changed Rev: (\d+)')
|
||||
return get_svn_status_matching(last_rev_re)
|
||||
|
||||
def get_hg_repo():
|
||||
status, output = commands.getstatusoutput('hg showconfig paths.default')
|
||||
if status:
|
||||
print >> sys.stderr, output
|
||||
sys.exit(1)
|
||||
if not output:
|
||||
print >> sys.stderr, 'ERROR: cannot find repo we cloned from'
|
||||
sys.exit(1)
|
||||
return output
|
||||
|
||||
def get_hg_changeset():
|
||||
status, output = commands.getstatusoutput('hg id -i')
|
||||
if status:
|
||||
print >> sys.stderr, output
|
||||
sys.exit(1)
|
||||
return output
|
||||
|
||||
def using_svn():
|
||||
return os.path.isdir(os.path.join(get_src_root(), '.svn'))
|
||||
|
||||
def using_hg():
|
||||
return os.path.isdir(os.path.join(get_src_root(), '.hg'))
|
||||
|
|
|
|||
|
|
@ -37,8 +37,6 @@ add_indra_lib_path()
|
|||
import getopt, os, re, commands
|
||||
from indra.util import llversion
|
||||
|
||||
hg = os.path.expandvars("${HG}")
|
||||
if not hg or hg == "${HG}": hg = "hg"
|
||||
svn = os.path.expandvars("${SVN}")
|
||||
if not svn or svn == "${SVN}": svn = "svn"
|
||||
|
||||
|
|
@ -154,8 +152,6 @@ re_map['indra/newview/English.lproj/InfoPlist.strings'] = \
|
|||
version_re = re.compile('(\d+).(\d+).(\d+).(\d+)')
|
||||
svn_branch_re = re.compile('^URL:\s+\S+/([^/\s]+)$', re.MULTILINE)
|
||||
svn_revision_re = re.compile('^Last Changed Rev: (\d+)$', re.MULTILINE)
|
||||
hg_branch_re = re.compile('^.*_([^_\s]*)\s*$', re.MULTILINE)
|
||||
hg_revision_re = re.compile('^changeset:\s+(\d+):', re.MULTILINE)
|
||||
|
||||
def main():
|
||||
script_path = os.path.dirname(__file__)
|
||||
|
|
@ -245,33 +241,17 @@ def main():
|
|||
if update_server:
|
||||
server_version = new_version
|
||||
else:
|
||||
# Assume we're updating just the build number
|
||||
cl = '%s info "%s"' % (svn, src_root)
|
||||
status, output = _getstatusoutput(cl)
|
||||
branch_match = None
|
||||
revision_match = None
|
||||
if status == 0:
|
||||
branch_match = svn_branch_re.search(output)
|
||||
revision_match = svn_revision_re.search(output)
|
||||
|
||||
if llversion.using_svn():
|
||||
revision = llversion.get_svn_revision()
|
||||
branch = llversion.get_svn_branch()
|
||||
elif llversion.using_hg():
|
||||
revision = llversion.get_hg_changeset()
|
||||
branch = llversion.get_hg_repo()
|
||||
else:
|
||||
cl = '%s log --limit 1' % hg
|
||||
status, output = _getstatusoutput(cl)
|
||||
if status == 0:
|
||||
branch_match = hg_branch_re.search(os.path.expandvars("${PARABUILD_BUILD_NAME}"))
|
||||
revision_match = hg_revision_re.search(output)
|
||||
|
||||
if verbose:
|
||||
print
|
||||
print "svn info output:"
|
||||
print "----------------"
|
||||
print output
|
||||
|
||||
if not branch_match or not revision_match:
|
||||
print "Failed to execute svn info, output follows:"
|
||||
print output
|
||||
print >>sys.stderr, "ERROR: could not determine revision and branch"
|
||||
return -1
|
||||
branch = branch_match.group(1)
|
||||
revision = revision_match.group(1)
|
||||
|
||||
if skip_on_branch_re and skip_on_branch_re.match(branch):
|
||||
print "Release Candidate Build, leaving version files untouched."
|
||||
return 0
|
||||
|
|
|
|||
Loading…
Reference in New Issue