#!/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()