aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Burgess IV <gbiv@google.com>2019-09-18 14:41:54 -0700
committerGeorge Burgess <gbiv@chromium.org>2019-09-27 18:35:05 +0000
commit1125ad815d06eb960681154be9fc2688af5470c7 (patch)
treea38aa894e0217076448e04f50024c4bbbfbf9c2d
parent9b6b17deefe076e05723871a9437847e1c0eabef (diff)
downloadtoolchain-utils-1125ad815d06eb960681154be9fc2688af5470c7.tar.gz
llvm_tools: add a script to `cp` files to chromiumos-overlay
This is a manual and seemingly error-prone process. Why not automate it? BUG=chromium:994322 TEST=./copy_helpers_to_chromiumos_overlay.py Change-Id: I6d008810619c0595fbbd4155526b6ad10a5d466c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1811966 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
-rwxr-xr-xllvm_tools/copy_helpers_to_chromiumos_overlay.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/llvm_tools/copy_helpers_to_chromiumos_overlay.py b/llvm_tools/copy_helpers_to_chromiumos_overlay.py
new file mode 100755
index 00000000..dd6dc9d6
--- /dev/null
+++ b/llvm_tools/copy_helpers_to_chromiumos_overlay.py
@@ -0,0 +1,66 @@
+#!/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',
+ '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()