summaryrefslogtreecommitdiffstats
path: root/contrib/check-valid-commit.py
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/check-valid-commit.py')
-rwxr-xr-xcontrib/check-valid-commit.py37
1 files changed, 22 insertions, 15 deletions
diff --git a/contrib/check-valid-commit.py b/contrib/check-valid-commit.py
index d26fa58c28..763ae3e062 100755
--- a/contrib/check-valid-commit.py
+++ b/contrib/check-valid-commit.py
@@ -10,13 +10,16 @@ import sys
SSH_USER = 'bot'
SSH_HOST = 'localhost'
SSH_PORT = 29418
-SSH_COMMAND = 'ssh %s@%s -p %d gerrit approve ' % (SSH_USER, SSH_HOST, SSH_PORT)
+SSH_COMMAND = 'ssh %s@%s -p %d gerrit approve ' % (SSH_USER,
+ SSH_HOST,
+ SSH_PORT)
FAILURE_SCORE = '--code-review=-2'
FAILURE_MESSAGE = 'This commit message does not match the standard.' \
+ ' Please correct the commit message and upload a replacement patch.'
PASS_SCORE = '--code-review=0'
PASS_MESSAGE = ''
+
def main():
change = None
project = None
@@ -25,8 +28,9 @@ def main():
patchset = None
try:
- opts, _args = getopt.getopt(sys.argv[1:], '', \
- ['change=', 'project=', 'branch=', 'commit=', 'patchset='])
+ opts, _args = getopt.getopt(sys.argv[1:], '',
+ ['change=', 'project=', 'branch=',
+ 'commit=', 'patchset='])
except getopt.GetoptError as err:
print('Error: %s' % (err))
usage()
@@ -48,8 +52,7 @@ def main():
usage()
sys.exit(-1)
- if change == None or project == None or branch == None \
- or commit == None or patchset == None:
+ if any(p is None for p in [change, project, branch, commit, patchset]):
usage()
sys.exit(-1)
@@ -57,16 +60,16 @@ def main():
status, output = subprocess.getstatusoutput(command)
if status != 0:
- print('Error running \'%s\'. status: %s, output:\n\n%s' % \
- (command, status, output))
+ print('Error running \'%s\'. status: %s, output:\n\n%s' %
+ (command, status, output))
sys.exit(-1)
commitMessage = output[(output.find('\n\n')+2):]
commitLines = commitMessage.split('\n')
if len(commitLines) > 1 and len(commitLines[1]) != 0:
- fail(commit, 'Invalid commit summary. The summary must be ' \
- + 'one line followed by a blank line.')
+ fail(commit, 'Invalid commit summary. The summary must be '
+ + 'one line followed by a blank line.')
i = 0
for line in commitLines:
@@ -76,23 +79,27 @@ def main():
passes(commit)
+
def usage():
print('Usage:\n')
- print(sys.argv[0] + ' --change <change id> --project <project name> ' \
- + '--branch <branch> --commit <sha1> --patchset <patchset id>')
+ print(sys.argv[0] + ' --change <change id> --project <project name> '
+ + '--branch <branch> --commit <sha1> --patchset <patchset id>')
-def fail( commit, message ):
+
+def fail(commit, message):
command = SSH_COMMAND + FAILURE_SCORE + ' -m \\\"' \
- + _shell_escape( FAILURE_MESSAGE + '\n\n' + message) \
+ + _shell_escape(FAILURE_MESSAGE + '\n\n' + message) \
+ '\\\" ' + commit
subprocess.getstatusoutput(command)
sys.exit(1)
-def passes( commit ):
+
+def passes(commit):
command = SSH_COMMAND + PASS_SCORE + ' -m \\\"' \
+ _shell_escape(PASS_MESSAGE) + ' \\\" ' + commit
subprocess.getstatusoutput(command)
+
def _shell_escape(x):
s = ''
for c in x:
@@ -102,6 +109,6 @@ def _shell_escape(x):
s = s + c
return s
+
if __name__ == '__main__':
main()
-