18 lines
758 B
Plaintext
18 lines
758 B
Plaintext
|
#! /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')
|