|  | #!/usr/bin/env python | 
|  | # | 
|  | # Copyright 2020 Google Inc. | 
|  | # | 
|  | # Use of this source code is governed by a BSD-style license that can be | 
|  | # found in the LICENSE file. | 
|  |  | 
|  |  | 
|  | """Bulk abandon Gerrit CLs.""" | 
|  |  | 
|  |  | 
|  | import argparse | 
|  | import os | 
|  | import re | 
|  | import subprocess | 
|  | import sys | 
|  |  | 
|  | from infra import git | 
|  | from infra import go | 
|  |  | 
|  |  | 
|  | def run_abandon_cls(args): | 
|  | """Bulk abandon Gerrit CLs.""" | 
|  | go.mod_download() | 
|  | go.install(go.INFRA_GO+'/scripts/abandon_gerrit_cls') | 
|  | subprocess.check_call([ | 
|  | 'abandon_gerrit_cls', | 
|  | '--gerrit_instance', args.gerrit_instance, | 
|  | '--abandon_reason', args.abandon_reason, | 
|  | '--last_modified_before_days', str(args.last_modified_before_days), | 
|  | ]) | 
|  |  | 
|  |  | 
|  | def main(): | 
|  | # TODO(rmistry): Instead of attempting to keep these args in sync, defer to | 
|  | # abandon_gerrit_cls for argument parsing. | 
|  | d = 'Helper script for bulk abandoning gerrit CLs' | 
|  | parser = argparse.ArgumentParser(description=d) | 
|  | parser.add_argument( | 
|  | '--gerrit-instance', '-g', default='https://skia-review.googlesource.com', | 
|  | help='Name of the gerrit instance.') | 
|  | parser.add_argument( | 
|  | '--abandon-reason', '-a', default='', | 
|  | help='Will be used as reason for abandoning.') | 
|  | parser.add_argument( | 
|  | '--last-modified-before-days', '-l', default=0, | 
|  | help='If 3 is specified then all CLs that were modified after 3 days ago ' | 
|  | 'will be returned.') | 
|  | args = parser.parse_args() | 
|  |  | 
|  | go.check() | 
|  | run_abandon_cls(args) | 
|  |  | 
|  |  | 
|  | if __name__ == '__main__': | 
|  | main() |