#!/usr/bin/env python3
# Copyright 2020 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Wrapper around repo to auto-update depot_tools during sync.

gclient keeps depot_tools up-to-date automatically for Chromium developers.

We only want to do this on `repo sync` operations as that implies a network
operation, and update_depot_tools is not cheap.
"""

import os
from pathlib import Path
import subprocess
import sys


# Some useful paths.
DEPOT_TOOLS_DIR = Path(__file__).resolve().parent
UPDATE_DEPOT_TOOLS = DEPOT_TOOLS_DIR / 'update_depot_tools'
REPO = DEPOT_TOOLS_DIR / 'repo_launcher'


def _UpdateDepotTools():
  """Help CrOS users keep their depot_tools checkouts up-to-date."""
  if os.getenv('DEPOT_TOOLS_UPDATE') == '0':
    return

  # We don't update the copy that's part of the CrOS repo client checkout.
  path = DEPOT_TOOLS_DIR
  while path != path.parent:
    if (path / '.repo').is_dir() and (path / 'chromite').is_dir():
      return
    path = path.parent

  subprocess.run([UPDATE_DEPOT_TOOLS], check=True)


def main(argv):
  # This is a bit hacky, but should be "good enough".  If repo itself gains
  # support for sync hooks, we could switch to that.
  if argv and argv[0] == 'sync':
    _UpdateDepotTools()

  os.execv(REPO, [sys.argv[0]] + argv)


if __name__ == '__main__':
  sys.exit(main(sys.argv[1:]))
