aboutsummaryrefslogtreecommitdiff
path: root/llvm_tools/copy_helpers_to_chromiumos_overlay.py
blob: 98f7b966f3f20073b099b1a787f870de802cb741 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright 2019 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.

"""Clones helper scripts into chromiumos-overlay.

Some files in here also need to live in chromiumos-overlay (e.g., the
patch_manager ones). This script simplifies the copying of those around.
"""

# Necessary until crbug.com/1006448 is fixed
from __future__ import print_function

import argparse
import os
import shutil
import sys


def _find_repo_root(script_root):
  repo_root = os.path.abspath(os.path.join(script_root, '../../../../'))
  if not os.path.isdir(os.path.join(repo_root, '.repo')):
    return None
  return repo_root


def main():
  parser = argparse.ArgumentParser(description=__doc__)
  parser.add_argument(
      '--chroot_path',
      help="Path to where CrOS' source tree lives. Will autodetect if you're "
      'running this from inside the CrOS source tree.')
  args = parser.parse_args()

  my_dir = os.path.abspath(os.path.dirname(__file__))

  repo_root = args.chroot_path
  if repo_root is None:
    repo_root = _find_repo_root(my_dir)
    if repo_root is None:
      sys.exit("Couldn't detect the CrOS checkout root; please provide a "
               'value for --chroot_path')

  chromiumos_overlay = os.path.join(repo_root,
                                    'src/third_party/chromiumos-overlay')

  clone_files = [
      'failure_modes.py',
      'get_llvm_hash.py',
      'git_llvm_rev.py',
      'patch_manager.py',
      'subprocess_helpers.py',
  ]

  filesdir = os.path.join(chromiumos_overlay,
                          'sys-devel/llvm/files/patch_manager')
  for f in clone_files:
    source = os.path.join(my_dir, f)
    dest = os.path.join(filesdir, f)
    print('%r => %r' % (source, dest))
    shutil.copyfile(source, dest)


if __name__ == '__main__':
  main()