summaryrefslogtreecommitdiff
path: root/deps/v8/tools/node
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/tools/node')
-rwxr-xr-xdeps/v8/tools/node/build_gn.py143
-rwxr-xr-xdeps/v8/tools/node/test_update_node.py125
-rw-r--r--deps/v8/tools/node/testdata/node/deps/v8/.gitignore7
-rw-r--r--deps/v8/tools/node/testdata/node/deps/v8/baz/delete_me1
-rw-r--r--deps/v8/tools/node/testdata/node/deps/v8/baz/v8_foo1
-rw-r--r--deps/v8/tools/node/testdata/node/deps/v8/delete_me1
-rw-r--r--deps/v8/tools/node/testdata/node/deps/v8/include/v8-version.h20
-rw-r--r--deps/v8/tools/node/testdata/node/deps/v8/v8_foo1
-rw-r--r--deps/v8/tools/node/testdata/v8/.gitignore3
-rw-r--r--deps/v8/tools/node/testdata/v8/base/trace_event/common/common0
-rw-r--r--deps/v8/tools/node/testdata/v8/baz/v8_foo1
-rw-r--r--deps/v8/tools/node/testdata/v8/baz/v8_new1
-rw-r--r--deps/v8/tools/node/testdata/v8/new/v8_new1
-rw-r--r--deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_foo1
-rw-r--r--deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_new1
-rw-r--r--deps/v8/tools/node/testdata/v8/testing/gtest/gtest_bar1
-rw-r--r--deps/v8/tools/node/testdata/v8/testing/gtest/gtest_new1
-rw-r--r--deps/v8/tools/node/testdata/v8/testing/gtest/new/gtest_new1
-rw-r--r--deps/v8/tools/node/testdata/v8/v8_foo1
-rw-r--r--deps/v8/tools/node/testdata/v8/v8_new1
-rwxr-xr-xdeps/v8/tools/node/update_node.py180
21 files changed, 0 insertions, 492 deletions
diff --git a/deps/v8/tools/node/build_gn.py b/deps/v8/tools/node/build_gn.py
deleted file mode 100755
index 83071adbfe..0000000000
--- a/deps/v8/tools/node/build_gn.py
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2017 the V8 project authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""
-Use this script to build libv8_monolith.a as dependency for Node.js
-Required dependencies can be fetched with fetch_deps.py.
-
-Usage: build_gn.py <Debug/Release> <v8-path> <build-path> [<build-flags>]...
-
-Build flags are passed either as "strings" or numeric value. True/false
-are represented as 1/0. E.g.
-
- v8_promise_internal_field_count=2
- target_cpu="x64"
- v8_enable_disassembler=0
-"""
-
-import argparse
-import os
-import subprocess
-import sys
-
-import node_common
-
-GN_ARGS = [
- "v8_monolithic=true",
- "is_component_build=false",
- "v8_use_external_startup_data=false",
- "use_custom_libcxx=false",
-]
-
-BUILD_TARGET = "v8_monolith"
-
-def FindTargetOs(flags):
- for flag in flags:
- if flag.startswith("target_os="):
- return flag[len("target_os="):].strip('"')
- raise Exception('No target_os was set.')
-
-def FindGn(options):
- if options.host_os == "linux":
- os_path = "linux64"
- elif options.host_os == "mac":
- os_path = "mac"
- elif options.host_os == "win":
- os_path = "win"
- else:
- raise "Operating system not supported by GN"
- return os.path.join(options.v8_path, "buildtools", os_path, "gn")
-
-def GenerateBuildFiles(options):
- gn = FindGn(options)
- gn_args = list(GN_ARGS)
- target_os = FindTargetOs(options.flag)
- if target_os != "win":
- gn_args.append("use_sysroot=false")
-
- for flag in options.flag:
- flag = flag.replace("=1", "=true")
- flag = flag.replace("=0", "=false")
- flag = flag.replace("target_cpu=ia32", "target_cpu=\"x86\"")
- gn_args.append(flag)
- if options.mode == "Debug":
- gn_args.append("is_debug=true")
- else:
- gn_args.append("is_debug=false")
-
- flattened_args = ' '.join(gn_args)
- if options.extra_gn_args:
- flattened_args += ' ' + options.extra_gn_args
-
- args = [gn, "gen", options.build_path, "-q", "--args=" + flattened_args]
- subprocess.check_call(args)
-
-def Build(options):
- depot_tools = node_common.EnsureDepotTools(options.v8_path, False)
- ninja = os.path.join(depot_tools, "ninja")
- if sys.platform == 'win32':
- # Required because there is an extension-less file called "ninja".
- ninja += ".exe"
- args = [ninja, "-C", options.build_path, BUILD_TARGET]
- if options.max_load:
- args += ["-l" + options.max_load]
- if options.max_jobs:
- args += ["-j" + options.max_jobs]
- else:
- with open(os.path.join(options.build_path, "args.gn")) as f:
- if "use_goma = true" in f.read():
- args += ["-j500"]
- subprocess.check_call(args)
-
-def ParseOptions(args):
- parser = argparse.ArgumentParser(
- description="Build %s with GN" % BUILD_TARGET)
- parser.add_argument("--mode", help="Build mode (Release/Debug)")
- parser.add_argument("--v8_path", help="Path to V8", required=True)
- parser.add_argument("--build_path", help="Path to build result",
- required=True)
- parser.add_argument("--flag", help="Translate GYP flag to GN",
- action="append")
- parser.add_argument("--host_os", help="Current operating system")
- parser.add_argument("--bundled-win-toolchain",
- help="Value for DEPOT_TOOLS_WIN_TOOLCHAIN")
- parser.add_argument("--bundled-win-toolchain-root",
- help="Value for DEPOT_TOOLS_WIN_TOOLCHAIN_ROOT")
- parser.add_argument("--depot-tools", help="Absolute path to depot_tools")
- parser.add_argument("--extra-gn-args", help="Additional GN args")
- parser.add_argument("--build", help="Run ninja as opposed to gn gen.",
- action="store_true")
- parser.add_argument("--max-jobs", help="ninja's -j parameter")
- parser.add_argument("--max-load", help="ninja's -l parameter")
- options = parser.parse_args(args)
-
- options.build_path = os.path.abspath(options.build_path)
-
- if not options.build:
- assert options.host_os
- assert options.mode == "Debug" or options.mode == "Release"
-
- options.v8_path = os.path.abspath(options.v8_path)
- assert os.path.isdir(options.v8_path)
-
- return options
-
-
-if __name__ == "__main__":
- options = ParseOptions(sys.argv[1:])
- # Build can result in running gn gen, so need to set environment variables
- # for build as well as generate.
- if options.bundled_win_toolchain:
- os.environ['DEPOT_TOOLS_WIN_TOOLCHAIN'] = options.bundled_win_toolchain
- if options.bundled_win_toolchain_root:
- os.environ['DEPOT_TOOLS_WIN_TOOLCHAIN_ROOT'] = (
- options.bundled_win_toolchain_root)
- if options.depot_tools:
- os.environ['PATH'] = (
- options.depot_tools + os.path.pathsep + os.environ['PATH'])
- if not options.build:
- GenerateBuildFiles(options)
- else:
- Build(options)
diff --git a/deps/v8/tools/node/test_update_node.py b/deps/v8/tools/node/test_update_node.py
deleted file mode 100755
index 785517b8c8..0000000000
--- a/deps/v8/tools/node/test_update_node.py
+++ /dev/null
@@ -1,125 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2017 the V8 project authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import os
-import shutil
-import subprocess
-import sys
-import tempfile
-import unittest
-
-import update_node
-
-# Base paths.
-BASE_DIR = os.path.dirname(os.path.abspath(__file__))
-TEST_DATA = os.path.join(BASE_DIR, 'testdata')
-
-# Expectations.
-EXPECTED_GITIGNORE = """
-/third_party/googletest/*
-!/third_party/googletest/src
-/third_party/googletest/src/*
-!/third_party/googletest/src/googletest
-/third_party/googletest/src/googletest/*
-!/third_party/googletest/src/googletest/include
-/third_party/googletest/src/googletest/include/*
-!/third_party/googletest/src/googletest/include/gtest
-/third_party/googletest/src/googletest/include/gtest/*
-!/third_party/googletest/src/googletest/include/gtest/gtest_prod.h
-!/third_party/jinja2
-!/third_party/markupsafe
-/unrelated
-"""
-
-EXPECTED_GIT_DIFF = """
- create mode 100644 deps/v8/base/trace_event/common/common
- rename deps/v8/baz/{delete_me => v8_new} (100%)
- delete mode 100644 deps/v8/include/v8-version.h
- rename deps/v8/{delete_me => new/v8_new} (100%)
- create mode 100644 deps/v8/third_party/googletest/src/googletest/include/gtest/gtest_prod.h
- create mode 100644 deps/v8/third_party/jinja2/jinja2
- create mode 100644 deps/v8/third_party/markupsafe/markupsafe
- create mode 100644 deps/v8/v8_new
-"""
-
-ADDED_FILES = [
- 'v8_new',
- 'new/v8_new',
- 'baz/v8_new',
- '/third_party/googletest/src/googletest/include/gtest/gtest_new',
- '/third_party/googletest/src/googletest/include/gtest/new/gtest_new',
- '/third_party/googletest/src/googletest/include/gtest/baz/gtest_new',
- 'third_party/jinja2/jinja2',
- 'third_party/markupsafe/markupsafe'
-]
-
-REMOVED_FILES = [
- 'delete_me',
- 'baz/delete_me',
- 'testing/gtest/delete_me',
- 'testing/gtest/baz/delete_me',
-]
-
-def gitify(path):
- files = os.listdir(path)
- subprocess.check_call(['git', 'init'], cwd=path)
- subprocess.check_call(['git', 'add'] + files, cwd=path)
- subprocess.check_call(['git', 'commit', '-m', 'Initial'], cwd=path)
-
-
-class TestUpdateNode(unittest.TestCase):
- def setUp(self):
- self.workdir = tempfile.mkdtemp(prefix='tmp_test_node_')
-
- def tearDown(self):
- shutil.rmtree(self.workdir)
-
- def testUpdate(self):
- v8_cwd = os.path.join(self.workdir, 'v8')
- node_cwd = os.path.join(self.workdir, 'node')
-
- # Set up V8 test fixture.
- shutil.copytree(src=os.path.join(TEST_DATA, 'v8'), dst=v8_cwd)
- gitify(v8_cwd)
- for repository in update_node.SUB_REPOSITORIES:
- gitify(os.path.join(v8_cwd, *repository))
-
- # Set up node test fixture.
- shutil.copytree(src=os.path.join(TEST_DATA, 'node'), dst=node_cwd)
- gitify(os.path.join(node_cwd))
-
- # Add a patch.
- with open(os.path.join(v8_cwd, 'v8_foo'), 'w') as f:
- f.write('zonk')
- subprocess.check_call(['git', 'add', 'v8_foo'], cwd=v8_cwd)
-
- # Run update script.
- update_node.Main([v8_cwd, node_cwd, "--commit", "--with-patch"])
-
- # Check expectations.
- with open(os.path.join(node_cwd, 'deps', 'v8', '.gitignore')) as f:
- actual_gitignore = f.read()
- self.assertEquals(EXPECTED_GITIGNORE.strip(), actual_gitignore.strip())
- for f in ADDED_FILES:
- added_file = os.path.join(node_cwd, 'deps', 'v8', *f.split('/'))
- self.assertTrue(os.path.exists(added_file))
- for f in REMOVED_FILES:
- removed_file = os.path.join(node_cwd, 'deps', 'v8', *f.split('/'))
- self.assertFalse(os.path.exists(removed_file))
- gitlog = subprocess.check_output(
- ['git', 'diff', 'master', '--summary'],
- cwd=node_cwd,
- )
- self.assertEquals(EXPECTED_GIT_DIFF.strip(), gitlog.strip())
-
- # Check patch.
- gitlog = subprocess.check_output(
- ['git', 'diff', 'master', '--cached', '--', 'deps/v8/v8_foo'],
- cwd=node_cwd,
- )
- self.assertIn('+zonk', gitlog.strip())
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/deps/v8/tools/node/testdata/node/deps/v8/.gitignore b/deps/v8/tools/node/testdata/node/deps/v8/.gitignore
deleted file mode 100644
index 23c2024827..0000000000
--- a/deps/v8/tools/node/testdata/node/deps/v8/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-/unrelated
-/testing/gtest/*
-!/testing/gtest/include
-/testing/gtest/include/*
-!/testing/gtest/include/gtest
-/testing/gtest/include/gtest/*
-!/testing/gtest/include/gtest/gtest_prod.h
diff --git a/deps/v8/tools/node/testdata/node/deps/v8/baz/delete_me b/deps/v8/tools/node/testdata/node/deps/v8/baz/delete_me
deleted file mode 100644
index eb1ae458f8..0000000000
--- a/deps/v8/tools/node/testdata/node/deps/v8/baz/delete_me
+++ /dev/null
@@ -1 +0,0 @@
-...
diff --git a/deps/v8/tools/node/testdata/node/deps/v8/baz/v8_foo b/deps/v8/tools/node/testdata/node/deps/v8/baz/v8_foo
deleted file mode 100644
index eb1ae458f8..0000000000
--- a/deps/v8/tools/node/testdata/node/deps/v8/baz/v8_foo
+++ /dev/null
@@ -1 +0,0 @@
-...
diff --git a/deps/v8/tools/node/testdata/node/deps/v8/delete_me b/deps/v8/tools/node/testdata/node/deps/v8/delete_me
deleted file mode 100644
index eb1ae458f8..0000000000
--- a/deps/v8/tools/node/testdata/node/deps/v8/delete_me
+++ /dev/null
@@ -1 +0,0 @@
-...
diff --git a/deps/v8/tools/node/testdata/node/deps/v8/include/v8-version.h b/deps/v8/tools/node/testdata/node/deps/v8/include/v8-version.h
deleted file mode 100644
index fe8b2712e3..0000000000
--- a/deps/v8/tools/node/testdata/node/deps/v8/include/v8-version.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef V8_INCLUDE_VERSION_H_ // V8_VERSION_H_ conflicts with src/version.h
-#define V8_INCLUDE_VERSION_H_
-
-// These macros define the version number for the current version.
-// NOTE these macros are used by some of the tool scripts and the build
-// system so their names cannot be changed without changing the scripts.
-#define V8_MAJOR_VERSION 1
-#define V8_MINOR_VERSION 2
-#define V8_BUILD_NUMBER 3
-#define V8_PATCH_LEVEL 4321
-
-// Use 1 for candidates and 0 otherwise.
-// (Boolean macro values are not supported by all preprocessors.)
-#define V8_IS_CANDIDATE_VERSION 0
-
-#endif // V8_INCLUDE_VERSION_H_
diff --git a/deps/v8/tools/node/testdata/node/deps/v8/v8_foo b/deps/v8/tools/node/testdata/node/deps/v8/v8_foo
deleted file mode 100644
index eb1ae458f8..0000000000
--- a/deps/v8/tools/node/testdata/node/deps/v8/v8_foo
+++ /dev/null
@@ -1 +0,0 @@
-...
diff --git a/deps/v8/tools/node/testdata/v8/.gitignore b/deps/v8/tools/node/testdata/v8/.gitignore
deleted file mode 100644
index cc2f1ca202..0000000000
--- a/deps/v8/tools/node/testdata/v8/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/unrelated
-/third_party/jinja2
-/third_party/markupsafe
diff --git a/deps/v8/tools/node/testdata/v8/base/trace_event/common/common b/deps/v8/tools/node/testdata/v8/base/trace_event/common/common
deleted file mode 100644
index e69de29bb2..0000000000
--- a/deps/v8/tools/node/testdata/v8/base/trace_event/common/common
+++ /dev/null
diff --git a/deps/v8/tools/node/testdata/v8/baz/v8_foo b/deps/v8/tools/node/testdata/v8/baz/v8_foo
deleted file mode 100644
index eb1ae458f8..0000000000
--- a/deps/v8/tools/node/testdata/v8/baz/v8_foo
+++ /dev/null
@@ -1 +0,0 @@
-...
diff --git a/deps/v8/tools/node/testdata/v8/baz/v8_new b/deps/v8/tools/node/testdata/v8/baz/v8_new
deleted file mode 100644
index eb1ae458f8..0000000000
--- a/deps/v8/tools/node/testdata/v8/baz/v8_new
+++ /dev/null
@@ -1 +0,0 @@
-...
diff --git a/deps/v8/tools/node/testdata/v8/new/v8_new b/deps/v8/tools/node/testdata/v8/new/v8_new
deleted file mode 100644
index eb1ae458f8..0000000000
--- a/deps/v8/tools/node/testdata/v8/new/v8_new
+++ /dev/null
@@ -1 +0,0 @@
-...
diff --git a/deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_foo b/deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_foo
deleted file mode 100644
index eb1ae458f8..0000000000
--- a/deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_foo
+++ /dev/null
@@ -1 +0,0 @@
-...
diff --git a/deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_new b/deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_new
deleted file mode 100644
index eb1ae458f8..0000000000
--- a/deps/v8/tools/node/testdata/v8/testing/gtest/baz/gtest_new
+++ /dev/null
@@ -1 +0,0 @@
-...
diff --git a/deps/v8/tools/node/testdata/v8/testing/gtest/gtest_bar b/deps/v8/tools/node/testdata/v8/testing/gtest/gtest_bar
deleted file mode 100644
index eb1ae458f8..0000000000
--- a/deps/v8/tools/node/testdata/v8/testing/gtest/gtest_bar
+++ /dev/null
@@ -1 +0,0 @@
-...
diff --git a/deps/v8/tools/node/testdata/v8/testing/gtest/gtest_new b/deps/v8/tools/node/testdata/v8/testing/gtest/gtest_new
deleted file mode 100644
index eb1ae458f8..0000000000
--- a/deps/v8/tools/node/testdata/v8/testing/gtest/gtest_new
+++ /dev/null
@@ -1 +0,0 @@
-...
diff --git a/deps/v8/tools/node/testdata/v8/testing/gtest/new/gtest_new b/deps/v8/tools/node/testdata/v8/testing/gtest/new/gtest_new
deleted file mode 100644
index eb1ae458f8..0000000000
--- a/deps/v8/tools/node/testdata/v8/testing/gtest/new/gtest_new
+++ /dev/null
@@ -1 +0,0 @@
-...
diff --git a/deps/v8/tools/node/testdata/v8/v8_foo b/deps/v8/tools/node/testdata/v8/v8_foo
deleted file mode 100644
index eb1ae458f8..0000000000
--- a/deps/v8/tools/node/testdata/v8/v8_foo
+++ /dev/null
@@ -1 +0,0 @@
-...
diff --git a/deps/v8/tools/node/testdata/v8/v8_new b/deps/v8/tools/node/testdata/v8/v8_new
deleted file mode 100644
index eb1ae458f8..0000000000
--- a/deps/v8/tools/node/testdata/v8/v8_new
+++ /dev/null
@@ -1 +0,0 @@
-...
diff --git a/deps/v8/tools/node/update_node.py b/deps/v8/tools/node/update_node.py
deleted file mode 100755
index 2ebf799c5e..0000000000
--- a/deps/v8/tools/node/update_node.py
+++ /dev/null
@@ -1,180 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2017 the V8 project authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""
-Use this script to update V8 in a Node.js checkout.
-
-Requirements:
- - Node.js checkout in which V8 should be updated.
- - V8 checkout at the commit to which Node.js should be updated.
-
-Usage:
- $ update_node.py <path_to_v8> <path_to_node>
-
- This will synchronize the content of <path_to_node>/deps/v8 with <path_to_v8>,
- and a few V8 dependencies require in Node.js. It will also update .gitignore
- appropriately.
-
-Optional flags:
- --gclient Run `gclient sync` on the V8 checkout before updating.
- --commit Create commit with the updated V8 in the Node.js checkout.
- --with-patch Also include currently staged files in the V8 checkout.
-"""
-
-# for py2/py3 compatibility
-from __future__ import print_function
-
-import argparse
-import os
-import shutil
-import subprocess
-import sys
-import stat
-import node_common
-
-TARGET_SUBDIR = os.path.join("deps", "v8")
-
-SUB_REPOSITORIES = [ ["base", "trace_event", "common"],
- ["third_party", "googletest", "src"] ]
-
-DELETE_FROM_GITIGNORE = [ "/base",
- "/third_party/googletest/src" ]
-
-# Node.js requires only a single header file from gtest to build V8.
-ADD_TO_GITIGNORE = [ "/third_party/googletest/*",
- "!/third_party/googletest/BUILD.gn",
- "!/third_party/googletest/src",
- "/third_party/googletest/src/*",
- "!/third_party/googletest/src/googletest",
- "/third_party/googletest/src/googletest/*",
- "!/third_party/googletest/src/googletest/include",
- "/third_party/googletest/src/googletest/include/*",
- "!/third_party/googletest/src/googletest/include/gtest",
- "/third_party/googletest/src/googletest/include/gtest/*",
- "!/third_party/googletest/src/googletest/include/gtest/gtest_prod.h" ]
-
-# Node.js owns deps/v8/gypfiles in their downstream repository.
-FILES_TO_KEEP = [ "gypfiles" ]
-
-def RunGclient(path):
- assert os.path.isdir(path)
- print(">> Running gclient sync")
- subprocess.check_call(["gclient", "sync", "--nohooks"], cwd=path)
-
-def CommitPatch(options):
- """Makes a dummy commit for the changes in the index.
-
- On trybots, bot_updated applies the patch to the index. We commit it to make
- the fake git clone fetch it into node.js. We can leave the commit, as
- bot_update will ensure a clean state on each run.
- """
- print(">> Committing patch")
- subprocess.check_call(
- ["git", "-c", "user.name=fake", "-c", "user.email=fake@chromium.org",
- "commit", "--allow-empty", "-m", "placeholder-commit"],
- cwd=options.v8_path,
- )
-
-def UpdateTarget(repository, options, files_to_keep):
- source = os.path.join(options.v8_path, *repository)
- target = os.path.join(options.node_path, TARGET_SUBDIR, *repository)
- print(">> Updating target directory %s" % target)
- print(">> from active branch at %s" % source)
- if not os.path.exists(target):
- os.makedirs(target)
- # Remove possible remnants of previous incomplete runs.
- node_common.UninitGit(target)
-
- git_args = []
- git_args.append(["init"]) # initialize target repo
-
- if files_to_keep:
- git_args.append(["add"] + files_to_keep) # add and commit
- git_args.append(["commit", "-m", "keep files"]) # files we want to keep
-
- git_args.append(["clean", "-fxd"]) # nuke everything else
- git_args.append(["remote", "add", "source", source]) # point to source repo
- git_args.append(["fetch", "source", "HEAD"]) # sync to current branch
- git_args.append(["checkout", "-f", "FETCH_HEAD"]) # switch to that branch
- git_args.append(["clean", "-fxd"]) # delete removed files
-
- if files_to_keep:
- git_args.append(["cherry-pick", "master"]) # restore kept files
-
- try:
- for args in git_args:
- subprocess.check_call(["git"] + args, cwd=target)
- except:
- raise
- finally:
- node_common.UninitGit(target)
-
-def UpdateGitIgnore(options):
- file_name = os.path.join(options.node_path, TARGET_SUBDIR, ".gitignore")
- assert os.path.isfile(file_name)
- print(">> Updating .gitignore with lines")
- with open(file_name) as gitignore:
- content = gitignore.readlines()
- content = [x.strip() for x in content]
- for x in DELETE_FROM_GITIGNORE:
- if x in content:
- print("- %s" % x)
- content.remove(x)
- for x in ADD_TO_GITIGNORE:
- if x not in content:
- print("+ %s" % x)
- content.append(x)
- content.sort(key=lambda x: x[1:] if x.startswith("!") else x)
- with open(file_name, "w") as gitignore:
- for x in content:
- gitignore.write("%s\n" % x)
-
-def CreateCommit(options):
- print(">> Creating commit.")
- # Find git hash from source.
- githash = subprocess.check_output(["git", "rev-parse", "--short", "HEAD"],
- cwd=options.v8_path).strip()
- # Create commit at target.
- git_commands = [
- ["git", "checkout", "-b", "update_v8_to_%s" % githash], # new branch
- ["git", "add", "."], # add files
- ["git", "commit", "-m", "Update V8 to %s" % githash] # new commit
- ]
- for command in git_commands:
- subprocess.check_call(command, cwd=options.node_path)
-
-def ParseOptions(args):
- parser = argparse.ArgumentParser(description="Update V8 in Node.js")
- parser.add_argument("v8_path", help="Path to V8 checkout")
- parser.add_argument("node_path", help="Path to Node.js checkout")
- parser.add_argument("--gclient", action="store_true", help="Run gclient sync")
- parser.add_argument("--commit", action="store_true", help="Create commit")
- parser.add_argument("--with-patch", action="store_true",
- help="Apply also staged files")
- options = parser.parse_args(args)
- assert os.path.isdir(options.v8_path)
- options.v8_path = os.path.abspath(options.v8_path)
- assert os.path.isdir(options.node_path)
- options.node_path = os.path.abspath(options.node_path)
- return options
-
-def Main(args):
- options = ParseOptions(args)
- if options.gclient:
- RunGclient(options.v8_path)
- # Commit patch on trybots to main V8 repository.
- if options.with_patch:
- CommitPatch(options)
- # Update main V8 repository.
- UpdateTarget([""], options, FILES_TO_KEEP)
- # Patch .gitignore before updating sub-repositories.
- UpdateGitIgnore(options)
- for repo in SUB_REPOSITORIES:
- UpdateTarget(repo, options, None)
- if options.commit:
- CreateCommit(options)
-
-if __name__ == "__main__":
- Main(sys.argv[1:])