import tempfile
import uuid
+from invirt.config import structs as config
+import invirt.common as c
import invirt.builder as b
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
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__':