| #! /usr/bin/env python |
| # Copyright 2019 Google LLC. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| import re |
| import sys |
| def gerrit_percent_encode(value): |
| ''' |
| https://gerrit-review.googlesource.com/Documentation/user-upload.html |
| "To avoid confusion in parsing the git ref, at least the following characters |
| must be percent-encoded: " %^@.~-+_:/!". Note that some of the reserved |
| characters (like tilde) are not escaped in the standard URL encoding rules..." |
| ''' |
| good = re.compile('^[A-Za-z0-9]$') |
| return ''.join(c if good.match(c) else '%%%02X' % ord(c) for c in value) |
| if __name__ == '__main__': |
| sys.stdout.write(gerrit_percent_encode(' '.join(sys.argv[1:])) + '\n') |