diff options
Diffstat (limited to 'tools/sync_third_party.py')
-rwxr-xr-x | tools/sync_third_party.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tools/sync_third_party.py b/tools/sync_third_party.py new file mode 100755 index 000000000..f32d669b2 --- /dev/null +++ b/tools/sync_third_party.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python +# Only run this script if you are changing Deno's dependencies. + +import os +from os.path import join +from util import run, remove_and_symlink + +root_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) +third_party_path = join(root_path, "third_party") + +try: + os.makedirs(third_party_path) +except: + pass +os.chdir(third_party_path) + +# Run yarn to install JavaScript dependencies. +remove_and_symlink("../package.json", "package.json") +remove_and_symlink("../yarn.lock", "yarn.lock") +run(["yarn"]) +# Run cargo to install Rust dependencies. +run(["cargo", "fetch", "--manifest-path=" + root_path + "/Cargo.toml"], + envs={'CARGO_HOME': third_party_path + '/rust_crates'}) +# Run gclient to install other dependencies. +run(["gclient", "sync", "--reset", "--shallow", "--no-history", "--nohooks"], + envs={'GCLIENT_FILE': root_path + "/gclient_config.py"}) +# TODO(ry) Is it possible to remove these symlinks? +remove_and_symlink("v8/third_party/googletest", "googletest", True) +remove_and_symlink("v8/third_party/jinja2", "jinja2", True) +remove_and_symlink("v8/third_party/llvm-build", "llvm-build", True) +remove_and_symlink("v8/third_party/markupsafe", "markupsafe", True) + +# To update the deno_third_party git repo after running this, try the following: +# cd third_party +# find . -type f | grep -v "\.git" | xargs -I% git add -f --no-warn-embedded-repo "%" |