X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-dev.git/blobdiff_plain/1c9ac2563d5afefb47da45c352f4bdd25acf8635..50d6954a47fdce977bc0853e53a2bb14ff04ca90:/invirt-submit-build diff --git a/invirt-submit-build b/invirt-submit-build index 8175865..f202c3d 100755 --- a/invirt-submit-build +++ b/invirt-submit-build @@ -24,6 +24,8 @@ import sys import tempfile import uuid +from invirt.config import structs as config +import invirt.common as c import invirt.builder as b @@ -41,9 +43,18 @@ def main(): uuid.uuid4())) try: + # TODO: clean up this interface. + b.ensureValidPackage(package) + if config.build.get('mirror'): + c.captureOutput(['git', 'fetch'], cwd=b.getRepo(package)) + commit = b.canonicalize_commit(package, commit) b.validateBuild(pocket, package, commit) except b.InvalidBuild, e: - print >>sys.stderr, "E: %s" % e + msg = "E: %s" % e + print >>sys.stderr, msg + # Prevent an attack by submitting excessively long arguments + args = [arg[:min(len(arg), 80)] for arg in (pocket, package, commit)] + b.runHook('failed-submit', args + [principal], stdin_str=msg) sys.exit(1) # To keep from triggering the Invirtibuilder before we've actually @@ -54,6 +65,9 @@ def main(): print >>q, "%s %s %s %s" % (pocket, package, commit, principal) q.close() os.rename(q_name, q_path) + short_commit = b.canonicalize_commit(package, commit, shorten=True) + b.runHook('post-submit', [pocket, package, short_commit, principal]) + print '%s, your job to build %s for %s:%s has been submitted!' % (principal, short_commit, package, pocket) if __name__ == '__main__':