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