blob: 24919866c9e8a5e28db81e78d17373d5d6e69eca [file] [log] [blame]
from util.retry import retry
from util.commands import run_cmd, get_output
import os
import logging
log = logging.getLogger(__name__)
def checkoutSVN(targetSVNDirectory, svnURL):
"""
Checkout the product details SVN
"""
if not os.path.isdir(targetSVNDirectory):
cmd = ["svn", "co", svnURL, targetSVNDirectory]
run_cmd(cmd)
def exportJSON(targetSVNDirectory):
"""
Export the PHP product details to json
"""
retval = os.getcwd()
try:
os.chdir(targetSVNDirectory)
run_cmd(["php", "export_json.php"])
finally:
os.chdir(retval)
def doCommitSVN(commitMSG):
"""
Actually do the commit (called with retry)
"""
log.info("svn commit -m " + commitMSG)
run_cmd(["svn", "commit", "-m", commitMSG])
def getSVNrev(targetSVNDirectory):
"""
Return the svn revision
"""
retval = os.getcwd()
try:
os.chdir(targetSVNDirectory)
return get_output(["svnversion"])
finally:
os.chdir(retval)
def commitSVN(targetSVNDirectory, product, version, fakeCommit=False):
"""
Commit the change in the svn
"""
retval = os.getcwd()
os.chdir(targetSVNDirectory)
try:
if not os.path.isdir(".svn"):
raise Exception("Could not find the svn directory")
commitMSG = "'" + product + " version " + version + "'"
if not fakeCommit:
retry(doCommitSVN, args=(commitMSG), attempts=3, sleeptime=0)
finally:
os.chdir(retval)
def updateRev(targetSVNDirectory, newRev):
run_cmd(["svn", "propset", "svn:externals", "'product-details -r" + newRev, "http://svn.mozilla.org/libs/product-details'", "tags/stage/includes"])
run_cmd(["svn", "propset", "svn:externals", "'product-details -r" + newRev, "http://svn.mozilla.org/libs/product-details'", "tags/productions/includes"])
run_cmd(["svn", "up"])