libv8 8.4.255.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +19 -0
- data/.gitmodules +3 -0
- data/.rspec +3 -0
- data/.travis.yml +45 -0
- data/CHANGELOG.md +111 -0
- data/Gemfile +4 -0
- data/README.md +152 -0
- data/Rakefile +125 -0
- data/appveyor.yml.disabled +36 -0
- data/ext/libv8/arch.rb +20 -0
- data/ext/libv8/builder.rb +106 -0
- data/ext/libv8/extconf.rb +7 -0
- data/ext/libv8/location.rb +89 -0
- data/ext/libv8/paths.rb +28 -0
- data/lib/libv8.rb +9 -0
- data/lib/libv8/version.rb +3 -0
- data/libv8.gemspec +30 -0
- data/scaleway.png +0 -0
- data/spec/location_spec.rb +69 -0
- data/spec/spec_helper.rb +4 -0
- data/thefrontside.png +0 -0
- data/vendor/depot_tools/.cipd_impl.ps1 +129 -0
- data/vendor/depot_tools/.gitattributes +55 -0
- data/vendor/depot_tools/.gitignore +92 -0
- data/vendor/depot_tools/.style.yapf +4 -0
- data/vendor/depot_tools/.vpython +55 -0
- data/vendor/depot_tools/.vpython3 +23 -0
- data/vendor/depot_tools/CROS_OWNERS +7 -0
- data/vendor/depot_tools/GOMA_OWNERS +9 -0
- data/vendor/depot_tools/LICENSE +27 -0
- data/vendor/depot_tools/LUCI_OWNERS +5 -0
- data/vendor/depot_tools/OWNERS +39 -0
- data/vendor/depot_tools/PRESUBMIT.py +150 -0
- data/vendor/depot_tools/README.gclient.md +67 -0
- data/vendor/depot_tools/README.git-cl.md +99 -0
- data/vendor/depot_tools/README.md +78 -0
- data/vendor/depot_tools/WATCHLISTS +26 -0
- data/vendor/depot_tools/auth.py +163 -0
- data/vendor/depot_tools/autoninja +36 -0
- data/vendor/depot_tools/autoninja.bat +33 -0
- data/vendor/depot_tools/autoninja.py +148 -0
- data/vendor/depot_tools/bb +12 -0
- data/vendor/depot_tools/bb.bat +7 -0
- data/vendor/depot_tools/bootstrap/README.md +155 -0
- data/vendor/depot_tools/bootstrap/bootstrap.py +356 -0
- data/vendor/depot_tools/bootstrap/git-bash.template.sh +12 -0
- data/vendor/depot_tools/bootstrap/git.template.bat +5 -0
- data/vendor/depot_tools/bootstrap/manifest.txt +27 -0
- data/vendor/depot_tools/bootstrap/manifest_bleeding_edge.txt +27 -0
- data/vendor/depot_tools/bootstrap/profile.d.python.sh +20 -0
- data/vendor/depot_tools/bootstrap/python27.bat +46 -0
- data/vendor/depot_tools/bootstrap/python3.bat +46 -0
- data/vendor/depot_tools/bootstrap/win_tools.bat +79 -0
- data/vendor/depot_tools/bootstrap_python3 +35 -0
- data/vendor/depot_tools/breakpad.py +12 -0
- data/vendor/depot_tools/cbuildbot +1 -0
- data/vendor/depot_tools/chrome_set_ver +1 -0
- data/vendor/depot_tools/cipd +247 -0
- data/vendor/depot_tools/cipd.bat +67 -0
- data/vendor/depot_tools/cipd_bin_setup.bat +6 -0
- data/vendor/depot_tools/cipd_bin_setup.sh +22 -0
- data/vendor/depot_tools/cipd_client_version +1 -0
- data/vendor/depot_tools/cipd_client_version.digests +22 -0
- data/vendor/depot_tools/cipd_manifest.txt +63 -0
- data/vendor/depot_tools/cipd_manifest.versions +438 -0
- data/vendor/depot_tools/cit +8 -0
- data/vendor/depot_tools/cit.bat +12 -0
- data/vendor/depot_tools/cit.py +167 -0
- data/vendor/depot_tools/clang-format +8 -0
- data/vendor/depot_tools/clang-format.bat +12 -0
- data/vendor/depot_tools/clang_format.py +79 -0
- data/vendor/depot_tools/clang_format_merge_driver +8 -0
- data/vendor/depot_tools/clang_format_merge_driver.bat +12 -0
- data/vendor/depot_tools/clang_format_merge_driver.py +69 -0
- data/vendor/depot_tools/codereview.settings +6 -0
- data/vendor/depot_tools/compile_single_file +8 -0
- data/vendor/depot_tools/compile_single_file.bat +11 -0
- data/vendor/depot_tools/compile_single_file.py +79 -0
- data/vendor/depot_tools/cpplint.bat +11 -0
- data/vendor/depot_tools/cpplint.py +6097 -0
- data/vendor/depot_tools/cpplint_chromium.py +50 -0
- data/vendor/depot_tools/cros +87 -0
- data/vendor/depot_tools/cros_sdk +1 -0
- data/vendor/depot_tools/crosjobs +13 -0
- data/vendor/depot_tools/detect_host_arch.py +55 -0
- data/vendor/depot_tools/dirmd +12 -0
- data/vendor/depot_tools/dirmd.bat +7 -0
- data/vendor/depot_tools/download_from_google_storage +8 -0
- data/vendor/depot_tools/download_from_google_storage.bat +12 -0
- data/vendor/depot_tools/download_from_google_storage.py +634 -0
- data/vendor/depot_tools/ensure_bootstrap +53 -0
- data/vendor/depot_tools/fetch +21 -0
- data/vendor/depot_tools/fetch.bat +28 -0
- data/vendor/depot_tools/fetch.py +319 -0
- data/vendor/depot_tools/fetch_configs/android.py +34 -0
- data/vendor/depot_tools/fetch_configs/android_internal.py +34 -0
- data/vendor/depot_tools/fetch_configs/breakpad.py +44 -0
- data/vendor/depot_tools/fetch_configs/chromium.py +66 -0
- data/vendor/depot_tools/fetch_configs/config_util.py +52 -0
- data/vendor/depot_tools/fetch_configs/crashpad.py +41 -0
- data/vendor/depot_tools/fetch_configs/dart.py +45 -0
- data/vendor/depot_tools/fetch_configs/depot_tools.py +44 -0
- data/vendor/depot_tools/fetch_configs/devtools-frontend.py +44 -0
- data/vendor/depot_tools/fetch_configs/goma_client.py +41 -0
- data/vendor/depot_tools/fetch_configs/gyp.py +41 -0
- data/vendor/depot_tools/fetch_configs/infra.py +40 -0
- data/vendor/depot_tools/fetch_configs/infra_internal.py +45 -0
- data/vendor/depot_tools/fetch_configs/inspector_protocol.py +40 -0
- data/vendor/depot_tools/fetch_configs/ios.py +34 -0
- data/vendor/depot_tools/fetch_configs/ios_internal.py +39 -0
- data/vendor/depot_tools/fetch_configs/nacl.py +48 -0
- data/vendor/depot_tools/fetch_configs/naclports.py +47 -0
- data/vendor/depot_tools/fetch_configs/node-ci.py +41 -0
- data/vendor/depot_tools/fetch_configs/pdfium.py +40 -0
- data/vendor/depot_tools/fetch_configs/skia.py +41 -0
- data/vendor/depot_tools/fetch_configs/skia_buildbot.py +41 -0
- data/vendor/depot_tools/fetch_configs/syzygy.py +41 -0
- data/vendor/depot_tools/fetch_configs/v8.py +44 -0
- data/vendor/depot_tools/fetch_configs/webrtc.py +52 -0
- data/vendor/depot_tools/fetch_configs/webrtc_android.py +34 -0
- data/vendor/depot_tools/fetch_configs/webrtc_ios.py +34 -0
- data/vendor/depot_tools/fix_encoding.py +385 -0
- data/vendor/depot_tools/gclient +38 -0
- data/vendor/depot_tools/gclient-new-workdir.py +124 -0
- data/vendor/depot_tools/gclient.bat +32 -0
- data/vendor/depot_tools/gclient.py +3198 -0
- data/vendor/depot_tools/gclient_completion.sh +76 -0
- data/vendor/depot_tools/gclient_eval.py +891 -0
- data/vendor/depot_tools/gclient_paths.py +152 -0
- data/vendor/depot_tools/gclient_scm.py +1615 -0
- data/vendor/depot_tools/gclient_utils.py +1280 -0
- data/vendor/depot_tools/gerrit_client.py +151 -0
- data/vendor/depot_tools/gerrit_util.py +996 -0
- data/vendor/depot_tools/git-cache +6 -0
- data/vendor/depot_tools/git-cl +6 -0
- data/vendor/depot_tools/git-crrev-parse +53 -0
- data/vendor/depot_tools/git-drover +6 -0
- data/vendor/depot_tools/git-find-releases +6 -0
- data/vendor/depot_tools/git-footers +6 -0
- data/vendor/depot_tools/git-freeze +8 -0
- data/vendor/depot_tools/git-gs +9 -0
- data/vendor/depot_tools/git-hyper-blame +6 -0
- data/vendor/depot_tools/git-map +6 -0
- data/vendor/depot_tools/git-map-branches +6 -0
- data/vendor/depot_tools/git-mark-merge-base +6 -0
- data/vendor/depot_tools/git-nav-downstream +6 -0
- data/vendor/depot_tools/git-nav-upstream +6 -0
- data/vendor/depot_tools/git-new-branch +6 -0
- data/vendor/depot_tools/git-number +6 -0
- data/vendor/depot_tools/git-rebase-update +6 -0
- data/vendor/depot_tools/git-rename-branch +6 -0
- data/vendor/depot_tools/git-reparent-branch +6 -0
- data/vendor/depot_tools/git-retry +8 -0
- data/vendor/depot_tools/git-runhooks +23 -0
- data/vendor/depot_tools/git-squash-branch +6 -0
- data/vendor/depot_tools/git-templates/description +3 -0
- data/vendor/depot_tools/git-templates/hooks/applypatch-msg +4 -0
- data/vendor/depot_tools/git-templates/hooks/post-applypatch +4 -0
- data/vendor/depot_tools/git-templates/hooks/post-checkout +4 -0
- data/vendor/depot_tools/git-templates/hooks/post-commit +4 -0
- data/vendor/depot_tools/git-templates/hooks/post-merge +4 -0
- data/vendor/depot_tools/git-templates/hooks/post-update +4 -0
- data/vendor/depot_tools/git-templates/hooks/pre-applypatch +4 -0
- data/vendor/depot_tools/git-templates/hooks/pre-auto-gc +4 -0
- data/vendor/depot_tools/git-templates/hooks/pre-commit +4 -0
- data/vendor/depot_tools/git-templates/hooks/pre-rebase +4 -0
- data/vendor/depot_tools/git-templates/hooks/prepare-commit-msg +4 -0
- data/vendor/depot_tools/git-templates/info/exclude +6 -0
- data/vendor/depot_tools/git-thaw +13 -0
- data/vendor/depot_tools/git-upstream-diff +9 -0
- data/vendor/depot_tools/git_cache.py +786 -0
- data/vendor/depot_tools/git_cl.py +5158 -0
- data/vendor/depot_tools/git_cl_completion.sh +48 -0
- data/vendor/depot_tools/git_common.py +1101 -0
- data/vendor/depot_tools/git_dates.py +62 -0
- data/vendor/depot_tools/git_drover.py +469 -0
- data/vendor/depot_tools/git_find_releases.py +67 -0
- data/vendor/depot_tools/git_footers.py +261 -0
- data/vendor/depot_tools/git_freezer.py +40 -0
- data/vendor/depot_tools/git_hyper_blame.py +391 -0
- data/vendor/depot_tools/git_map.py +166 -0
- data/vendor/depot_tools/git_map_branches.py +354 -0
- data/vendor/depot_tools/git_mark_merge_base.py +73 -0
- data/vendor/depot_tools/git_nav_downstream.py +69 -0
- data/vendor/depot_tools/git_new_branch.py +82 -0
- data/vendor/depot_tools/git_number.py +301 -0
- data/vendor/depot_tools/git_rebase_update.py +351 -0
- data/vendor/depot_tools/git_rename_branch.py +55 -0
- data/vendor/depot_tools/git_reparent_branch.py +101 -0
- data/vendor/depot_tools/git_retry.py +181 -0
- data/vendor/depot_tools/git_squash_branch.py +28 -0
- data/vendor/depot_tools/git_upstream_diff.py +64 -0
- data/vendor/depot_tools/gn +8 -0
- data/vendor/depot_tools/gn.bat +12 -0
- data/vendor/depot_tools/gn.py +78 -0
- data/vendor/depot_tools/goma_auth +12 -0
- data/vendor/depot_tools/goma_auth.bat +8 -0
- data/vendor/depot_tools/goma_ctl +12 -0
- data/vendor/depot_tools/goma_ctl.bat +8 -0
- data/vendor/depot_tools/gsutil.py +190 -0
- data/vendor/depot_tools/gsutil.py.bat +23 -0
- data/vendor/depot_tools/gsutil.vpython +120 -0
- data/vendor/depot_tools/infra/README.md +1 -0
- data/vendor/depot_tools/infra/config/OWNERS +7 -0
- data/vendor/depot_tools/infra/config/README.md +1 -0
- data/vendor/depot_tools/infra/config/recipes.cfg +26 -0
- data/vendor/depot_tools/led +12 -0
- data/vendor/depot_tools/led.bat +7 -0
- data/vendor/depot_tools/lockfile.py +116 -0
- data/vendor/depot_tools/luci-auth +13 -0
- data/vendor/depot_tools/luci-auth.bat +8 -0
- data/vendor/depot_tools/lucicfg +12 -0
- data/vendor/depot_tools/lucicfg.bat +7 -0
- data/vendor/depot_tools/mac_toolchain +12 -0
- data/vendor/depot_tools/man/html/depot_tools.html +934 -0
- data/vendor/depot_tools/man/html/depot_tools_tutorial.html +1593 -0
- data/vendor/depot_tools/man/html/git-cl.html +1033 -0
- data/vendor/depot_tools/man/html/git-drover.html +1048 -0
- data/vendor/depot_tools/man/html/git-footers.html +878 -0
- data/vendor/depot_tools/man/html/git-freeze.html +859 -0
- data/vendor/depot_tools/man/html/git-hyper-blame.html +878 -0
- data/vendor/depot_tools/man/html/git-map-branches.html +904 -0
- data/vendor/depot_tools/man/html/git-map.html +887 -0
- data/vendor/depot_tools/man/html/git-mark-merge-base.html +826 -0
- data/vendor/depot_tools/man/html/git-nav-downstream.html +844 -0
- data/vendor/depot_tools/man/html/git-nav-upstream.html +853 -0
- data/vendor/depot_tools/man/html/git-new-branch.html +932 -0
- data/vendor/depot_tools/man/html/git-rebase-update.html +961 -0
- data/vendor/depot_tools/man/html/git-rename-branch.html +794 -0
- data/vendor/depot_tools/man/html/git-reparent-branch.html +847 -0
- data/vendor/depot_tools/man/html/git-retry.html +858 -0
- data/vendor/depot_tools/man/html/git-squash-branch.html +881 -0
- data/vendor/depot_tools/man/html/git-thaw.html +794 -0
- data/vendor/depot_tools/man/html/git-upstream-diff.html +923 -0
- data/vendor/depot_tools/man/man1/git-cl.1 +198 -0
- data/vendor/depot_tools/man/man1/git-drover.1 +330 -0
- data/vendor/depot_tools/man/man1/git-footers.1 +144 -0
- data/vendor/depot_tools/man/man1/git-freeze.1 +113 -0
- data/vendor/depot_tools/man/man1/git-hyper-blame.1 +128 -0
- data/vendor/depot_tools/man/man1/git-map-branches.1 +210 -0
- data/vendor/depot_tools/man/man1/git-map.1 +179 -0
- data/vendor/depot_tools/man/man1/git-mark-merge-base.1 +69 -0
- data/vendor/depot_tools/man/man1/git-nav-downstream.1 +112 -0
- data/vendor/depot_tools/man/man1/git-nav-upstream.1 +122 -0
- data/vendor/depot_tools/man/man1/git-new-branch.1 +176 -0
- data/vendor/depot_tools/man/man1/git-rebase-update.1 +177 -0
- data/vendor/depot_tools/man/man1/git-rename-branch.1 +53 -0
- data/vendor/depot_tools/man/man1/git-reparent-branch.1 +93 -0
- data/vendor/depot_tools/man/man1/git-retry.1 +108 -0
- data/vendor/depot_tools/man/man1/git-squash-branch.1 +129 -0
- data/vendor/depot_tools/man/man1/git-thaw.1 +54 -0
- data/vendor/depot_tools/man/man1/git-upstream-diff.1 +153 -0
- data/vendor/depot_tools/man/man7/depot_tools.7 +139 -0
- data/vendor/depot_tools/man/man7/depot_tools_tutorial.7 +1061 -0
- data/vendor/depot_tools/man/push_to_gs.sh +4 -0
- data/vendor/depot_tools/man/src/.gitignore +5 -0
- data/vendor/depot_tools/man/src/_aliases.txt +5 -0
- data/vendor/depot_tools/man/src/_footer.txt +8 -0
- data/vendor/depot_tools/man/src/_git-cl_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-drover_desc.helper.txt +2 -0
- data/vendor/depot_tools/man/src/_git-footers_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-freeze_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-hyper-blame_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-map-branches_desc.helper.txt +4 -0
- data/vendor/depot_tools/man/src/_git-map_desc.helper.txt +3 -0
- data/vendor/depot_tools/man/src/_git-mark-merge-base_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-nav-downstream_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-nav-upstream_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-new-branch_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-rebase-update_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-rename-branch_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-reparent-branch_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-retry_desc.helper.txt +2 -0
- data/vendor/depot_tools/man/src/_git-squash-branch_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_git-thaw_desc.helper.txt +2 -0
- data/vendor/depot_tools/man/src/_git-upstream-diff_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/_helper_prefix.txt +1 -0
- data/vendor/depot_tools/man/src/asciidoc-override.css +7 -0
- data/vendor/depot_tools/man/src/common_demo_functions.sh +84 -0
- data/vendor/depot_tools/man/src/demo_repo.sh +43 -0
- data/vendor/depot_tools/man/src/depot_tools.txt +28 -0
- data/vendor/depot_tools/man/src/depot_tools_tutorial.demo.walkthrough.sh +155 -0
- data/vendor/depot_tools/man/src/depot_tools_tutorial.txt +432 -0
- data/vendor/depot_tools/man/src/filter_demo_output.py +141 -0
- data/vendor/depot_tools/man/src/git-cl.txt +119 -0
- data/vendor/depot_tools/man/src/git-drover.demo.1.sh +22 -0
- data/vendor/depot_tools/man/src/git-drover.demo.2.sh +23 -0
- data/vendor/depot_tools/man/src/git-drover.demo.3.sh +27 -0
- data/vendor/depot_tools/man/src/git-drover.demo.4.sh +39 -0
- data/vendor/depot_tools/man/src/git-drover.demo.common.sh +19 -0
- data/vendor/depot_tools/man/src/git-drover.txt +102 -0
- data/vendor/depot_tools/man/src/git-footers.demo.1.sh +17 -0
- data/vendor/depot_tools/man/src/git-footers.txt +71 -0
- data/vendor/depot_tools/man/src/git-freeze.demo.1.sh +23 -0
- data/vendor/depot_tools/man/src/git-freeze.txt +54 -0
- data/vendor/depot_tools/man/src/git-hyper-blame.demo.1.sh +3 -0
- data/vendor/depot_tools/man/src/git-hyper-blame.demo.2.sh +4 -0
- data/vendor/depot_tools/man/src/git-hyper-blame.demo.common.sh +57 -0
- data/vendor/depot_tools/man/src/git-hyper-blame.txt +85 -0
- data/vendor/depot_tools/man/src/git-map-branches.demo.1.sh +8 -0
- data/vendor/depot_tools/man/src/git-map-branches.txt +64 -0
- data/vendor/depot_tools/man/src/git-map.demo.1.sh +3 -0
- data/vendor/depot_tools/man/src/git-map.txt +67 -0
- data/vendor/depot_tools/man/src/git-mark-merge-base.txt +46 -0
- data/vendor/depot_tools/man/src/git-nav-downstream.demo.1.sh +12 -0
- data/vendor/depot_tools/man/src/git-nav-downstream.txt +40 -0
- data/vendor/depot_tools/man/src/git-nav-upstream.demo.1.sh +12 -0
- data/vendor/depot_tools/man/src/git-nav-upstream.txt +39 -0
- data/vendor/depot_tools/man/src/git-new-branch.demo.1.sh +17 -0
- data/vendor/depot_tools/man/src/git-new-branch.txt +82 -0
- data/vendor/depot_tools/man/src/git-rebase-update.txt +141 -0
- data/vendor/depot_tools/man/src/git-rename-branch.txt +28 -0
- data/vendor/depot_tools/man/src/git-reparent-branch.txt +61 -0
- data/vendor/depot_tools/man/src/git-retry.txt +67 -0
- data/vendor/depot_tools/man/src/git-squash-branch.demo.1.sh +12 -0
- data/vendor/depot_tools/man/src/git-squash-branch.txt +59 -0
- data/vendor/depot_tools/man/src/git-thaw.txt +29 -0
- data/vendor/depot_tools/man/src/git-upstream-diff.txt +107 -0
- data/vendor/depot_tools/man/src/make_docs.sh +260 -0
- data/vendor/depot_tools/man/src/prep_demo_repo.sh +103 -0
- data/vendor/depot_tools/metrics.README.md +101 -0
- data/vendor/depot_tools/metrics.py +297 -0
- data/vendor/depot_tools/metrics_utils.py +293 -0
- data/vendor/depot_tools/my_activity.py +971 -0
- data/vendor/depot_tools/ninja +44 -0
- data/vendor/depot_tools/ninja-linux32 +0 -0
- data/vendor/depot_tools/ninja-linux64 +0 -0
- data/vendor/depot_tools/ninja-mac +0 -0
- data/vendor/depot_tools/ninja.exe +0 -0
- data/vendor/depot_tools/ninjalog.README.md +64 -0
- data/vendor/depot_tools/ninjalog_uploader.py +233 -0
- data/vendor/depot_tools/ninjalog_uploader_wrapper.py +125 -0
- data/vendor/depot_tools/owners.py +641 -0
- data/vendor/depot_tools/owners_finder.py +385 -0
- data/vendor/depot_tools/post_build_ninja_summary.py +350 -0
- data/vendor/depot_tools/presubmit_canned_checks.py +1655 -0
- data/vendor/depot_tools/presubmit_support.py +1923 -0
- data/vendor/depot_tools/profile.xml +8 -0
- data/vendor/depot_tools/prpc +13 -0
- data/vendor/depot_tools/prpc.bat +8 -0
- data/vendor/depot_tools/pylint +9 -0
- data/vendor/depot_tools/pylint-1.5 +78 -0
- data/vendor/depot_tools/pylint-1.6 +78 -0
- data/vendor/depot_tools/pylint-1.7 +78 -0
- data/vendor/depot_tools/pylint-1.8 +78 -0
- data/vendor/depot_tools/pylint-1.9 +78 -0
- data/vendor/depot_tools/pylint.bat +12 -0
- data/vendor/depot_tools/pylint_main.py +45 -0
- data/vendor/depot_tools/pylintrc +349 -0
- data/vendor/depot_tools/python-bin/python3 +7 -0
- data/vendor/depot_tools/python_runner.sh +60 -0
- data/vendor/depot_tools/rdb +12 -0
- data/vendor/depot_tools/rdb.bat +7 -0
- data/vendor/depot_tools/recipes/OWNERS +4 -0
- data/vendor/depot_tools/recipes/README.recipes.md +1079 -0
- data/vendor/depot_tools/recipes/recipe_modules/OWNERS +1 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/OWNERS +2 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +38 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +516 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +117 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_luci.json +117 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +118 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +211 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +194 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +211 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +211 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/input_commit_with_id_without_repo.json +210 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/multiple_patch_refs.json +214 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_HEAD.json +65 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_branch_head.json +65 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_specific_commit.json +65 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_master.json +65 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/refs.json +212 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +210 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/resolve_chromium_fixed_version.json +117 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +95 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +209 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +193 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_branch_heads.json +261 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +261 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_webrtc.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/unrecognized_commit_repo.json +8 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +211 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +308 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/__init__.py +0 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +1258 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +93 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/do_not_retry_patch_failures_in_cq.py +42 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/ensure_checkout.py +35 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/__init__.py +9 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +455 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic.json +403 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic_pkg.json +403 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-failed.json +82 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-many-instances.json +411 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/mac64.json +403 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_file.json +315 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_mode.json +313 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_verfile.json +313 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/win64.json +403 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.py +187 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.py +59 -0
- data/vendor/depot_tools/recipes/recipe_modules/cipd/test_api.py +93 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/__init__.py +9 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +75 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic_luci.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/win.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.py +55 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +13 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +428 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +462 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/basic.json +238 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/revision.json +240 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/tryserver.json +238 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.py +95 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/resources/diff_deps.py +16 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/test_api.py +36 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/basic.json +55 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/dont have revision yet.json +84 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/no change, exception.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/windows.json +55 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.py +88 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/patch_project.py +92 -0
- data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/sync_failure.py +24 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/__init__.py +8 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +178 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +284 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.py +73 -0
- data/vendor/depot_tools/recipes/recipe_modules/gerrit/test_api.py +53 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +11 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/api.py +405 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic.json +217 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_branch.json +217 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_file_name.json +219 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_hash.json +216 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_ref.json +217 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_submodule_update_force.json +218 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_tags.json +218 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/can_fail_build.json +164 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cannot_fail_build.json +220 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cat-file_test.json +239 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_delta.json +290 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_failed.json +220 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output.json +222 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output_fails_build.json +111 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/curl_trace_file.json +218 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/git-cache-checkout.json +265 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +217 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/rebase_failed.json +221 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/remote_not_origin.json +219 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/set_got_revision.json +218 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.py +170 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/resources/git_setup.py +52 -0
- data/vendor/depot_tools/recipes/recipe_modules/git/test_api.py +18 -0
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/__init__.py +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +50 -0
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/config.py +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.expected/basic.json +105 -0
- data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.py +47 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/OWNERS +2 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/__init__.py +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +257 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +596 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.py +93 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +251 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/test_api.py +95 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.expected/basic.json +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.py +49 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/__init__.py +4 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/api.py +222 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.expected/basic.json +247 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.py +92 -0
- data/vendor/depot_tools/recipes/recipe_modules/gsutil/resources/gsutil_smart_retry.py +69 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/__init__.py +36 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/api.py +140 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/ancient_version.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/automatic_version.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/explicit_version.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/linux.json +21 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/mac.json +83 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/win.json +21 -0
- data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.py +42 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +27 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +251 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.expected/basic.json +27 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.py +19 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/properties.proto +14 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/test_api.py +19 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/execute.py +247 -0
- data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/prepare.py +49 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/__init__.py +18 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +264 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/basic_tags.json +57 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +190 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch_and_target_ref.json +190 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch.json +21 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch_new.json +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.py +95 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/test_api.py +14 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_fetch_ref_timeout.py +29 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.expected/basic.json +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.py +22 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_target_ref.py +32 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/__init__.py +25 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/api.py +137 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/linux.json +21 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/mac.json +21 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/win.json +108 -0
- data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.py +21 -0
- data/vendor/depot_tools/recipes/recipes.py +249 -0
- data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.expected/basic.json +175 -0
- data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.py +56 -0
- data/vendor/depot_tools/recipes/trigger_recipe_roller.txt +13 -0
- data/vendor/depot_tools/repo +1194 -0
- data/vendor/depot_tools/roll-dep +21 -0
- data/vendor/depot_tools/roll-dep.bat +21 -0
- data/vendor/depot_tools/roll_dep.py +282 -0
- data/vendor/depot_tools/scm.py +415 -0
- data/vendor/depot_tools/setup_color.py +130 -0
- data/vendor/depot_tools/split_cl.py +263 -0
- data/vendor/depot_tools/subcommand.py +261 -0
- data/vendor/depot_tools/subprocess2.py +258 -0
- data/vendor/depot_tools/third_party/__init__.py +5 -0
- data/vendor/depot_tools/third_party/colorama/LICENSE.txt +27 -0
- data/vendor/depot_tools/third_party/colorama/README.chromium +12 -0
- data/vendor/depot_tools/third_party/colorama/README.rst +346 -0
- data/vendor/depot_tools/third_party/colorama/__init__.py +6 -0
- data/vendor/depot_tools/third_party/colorama/ansi.py +102 -0
- data/vendor/depot_tools/third_party/colorama/ansitowin32.py +257 -0
- data/vendor/depot_tools/third_party/colorama/initialise.py +80 -0
- data/vendor/depot_tools/third_party/colorama/win32.py +152 -0
- data/vendor/depot_tools/third_party/colorama/winterm.py +169 -0
- data/vendor/depot_tools/third_party/coverage/AUTHORS.txt +43 -0
- data/vendor/depot_tools/third_party/coverage/PKG-INFO +41 -0
- data/vendor/depot_tools/third_party/coverage/README.chromium +13 -0
- data/vendor/depot_tools/third_party/coverage/__init__.py +120 -0
- data/vendor/depot_tools/third_party/coverage/__main__.py +4 -0
- data/vendor/depot_tools/third_party/coverage/annotate.py +101 -0
- data/vendor/depot_tools/third_party/coverage/backward.py +184 -0
- data/vendor/depot_tools/third_party/coverage/bytecode.py +75 -0
- data/vendor/depot_tools/third_party/coverage/cmdline.py +740 -0
- data/vendor/depot_tools/third_party/coverage/codeunit.py +145 -0
- data/vendor/depot_tools/third_party/coverage/collector.py +353 -0
- data/vendor/depot_tools/third_party/coverage/config.py +213 -0
- data/vendor/depot_tools/third_party/coverage/control.py +776 -0
- data/vendor/depot_tools/third_party/coverage/data.py +278 -0
- data/vendor/depot_tools/third_party/coverage/debug.py +54 -0
- data/vendor/depot_tools/third_party/coverage/execfile.py +171 -0
- data/vendor/depot_tools/third_party/coverage/files.py +309 -0
- data/vendor/depot_tools/third_party/coverage/fullcoverage/encodings.py +57 -0
- data/vendor/depot_tools/third_party/coverage/html.py +387 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/coverage_html.js +376 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/index.html +104 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery-1.4.3.min.js +166 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.hotkeys.js +99 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.isonscreen.js +53 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.min.js +166 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/jquery.tablesorter.min.js +2 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/keybd_closed.png +0 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/keybd_open.png +0 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/pyfile.html +90 -0
- data/vendor/depot_tools/third_party/coverage/htmlfiles/style.css +300 -0
- data/vendor/depot_tools/third_party/coverage/misc.py +163 -0
- data/vendor/depot_tools/third_party/coverage/parser.py +666 -0
- data/vendor/depot_tools/third_party/coverage/phystokens.py +208 -0
- data/vendor/depot_tools/third_party/coverage/report.py +92 -0
- data/vendor/depot_tools/third_party/coverage/results.py +286 -0
- data/vendor/depot_tools/third_party/coverage/summary.py +86 -0
- data/vendor/depot_tools/third_party/coverage/templite.py +166 -0
- data/vendor/depot_tools/third_party/coverage/version.py +9 -0
- data/vendor/depot_tools/third_party/coverage/xmlreport.py +155 -0
- data/vendor/depot_tools/third_party/httplib2/LICENSE +1339 -0
- data/vendor/depot_tools/third_party/httplib2/README.chromium +15 -0
- data/vendor/depot_tools/third_party/httplib2/__init__.py +1780 -0
- data/vendor/depot_tools/third_party/httplib2/cacerts.txt +2196 -0
- data/vendor/depot_tools/third_party/httplib2/iri2uri.py +110 -0
- data/vendor/depot_tools/third_party/httplib2/socks.py +448 -0
- data/vendor/depot_tools/third_party/repo/COPYING +202 -0
- data/vendor/depot_tools/third_party/repo/README.chromium +4 -0
- data/vendor/depot_tools/third_party/repo/__init__.py +0 -0
- data/vendor/depot_tools/third_party/repo/progress.py +117 -0
- data/vendor/depot_tools/third_party/retry_decorator/LICENSE.google +30 -0
- data/vendor/depot_tools/third_party/retry_decorator/__init__.py +0 -0
- data/vendor/depot_tools/third_party/retry_decorator/decorators.py +45 -0
- data/vendor/depot_tools/third_party/schema/.editorconfig +15 -0
- data/vendor/depot_tools/third_party/schema/.gitignore +174 -0
- data/vendor/depot_tools/third_party/schema/.travis.yml +37 -0
- data/vendor/depot_tools/third_party/schema/LICENSE-MIT +19 -0
- data/vendor/depot_tools/third_party/schema/MANIFEST.in +1 -0
- data/vendor/depot_tools/third_party/schema/README.chromium +12 -0
- data/vendor/depot_tools/third_party/schema/README.rst +382 -0
- data/vendor/depot_tools/third_party/schema/__init__.py +1 -0
- data/vendor/depot_tools/third_party/schema/schema.py +338 -0
- data/vendor/depot_tools/third_party/schema/setup.cfg +5 -0
- data/vendor/depot_tools/third_party/schema/setup.py +30 -0
- data/vendor/depot_tools/third_party/schema/test_schema.py +556 -0
- data/vendor/depot_tools/third_party/schema/tox.ini +33 -0
- data/vendor/depot_tools/third_party/six/LICENSE.txt +18 -0
- data/vendor/depot_tools/third_party/six/README.chromium +10 -0
- data/vendor/depot_tools/third_party/six/__init__.py +762 -0
- data/vendor/depot_tools/update_depot_tools +138 -0
- data/vendor/depot_tools/update_depot_tools.bat +65 -0
- data/vendor/depot_tools/update_depot_tools_toggle.py +38 -0
- data/vendor/depot_tools/upload_metrics.py +26 -0
- data/vendor/depot_tools/upload_to_google_storage.py +306 -0
- data/vendor/depot_tools/vpython +42 -0
- data/vendor/depot_tools/vpython.bat +7 -0
- data/vendor/depot_tools/vpython3 +55 -0
- data/vendor/depot_tools/vpython3.bat +12 -0
- data/vendor/depot_tools/watchlists.py +141 -0
- data/vendor/depot_tools/weekly +54 -0
- data/vendor/depot_tools/win32imports.py +61 -0
- data/vendor/depot_tools/win_toolchain/OWNERS +2 -0
- data/vendor/depot_tools/win_toolchain/README.md +74 -0
- data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +599 -0
- data/vendor/depot_tools/win_toolchain/package_from_installed.py +524 -0
- data/vendor/depot_tools/wtf +81 -0
- data/vendor/depot_tools/yapf +21 -0
- data/vendor/depot_tools/yapf.bat +12 -0
- data/vendor/depot_tools/zsh-goodies/README +6 -0
- data/vendor/depot_tools/zsh-goodies/_gclient +14 -0
- metadata +729 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# Copyright 2014 The Chromium Authors. All rights reserved.
|
|
3
|
+
# Use of this source code is governed by a BSD-style license that can be
|
|
4
|
+
# found in the LICENSE file.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
"""Generic retry wrapper for Git operations.
|
|
8
|
+
|
|
9
|
+
This is largely DEPRECATED in favor of the Infra Git wrapper:
|
|
10
|
+
https://chromium.googlesource.com/infra/infra/+/master/go/src/infra/tools/git
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
import logging
|
|
14
|
+
import optparse
|
|
15
|
+
import os
|
|
16
|
+
import subprocess
|
|
17
|
+
import sys
|
|
18
|
+
import threading
|
|
19
|
+
import time
|
|
20
|
+
|
|
21
|
+
from git_common import GIT_EXE, GIT_TRANSIENT_ERRORS_RE
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class TeeThread(threading.Thread):
|
|
25
|
+
|
|
26
|
+
def __init__(self, fd, out_fd, name):
|
|
27
|
+
super(TeeThread, self).__init__(name='git-retry.tee.%s' % (name,))
|
|
28
|
+
self.data = None
|
|
29
|
+
self.fd = fd
|
|
30
|
+
self.out_fd = out_fd
|
|
31
|
+
|
|
32
|
+
def run(self):
|
|
33
|
+
chunks = []
|
|
34
|
+
for line in self.fd:
|
|
35
|
+
chunks.append(line)
|
|
36
|
+
self.out_fd.write(line)
|
|
37
|
+
self.data = ''.join(chunks)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class GitRetry(object):
|
|
41
|
+
|
|
42
|
+
logger = logging.getLogger('git-retry')
|
|
43
|
+
DEFAULT_DELAY_SECS = 3.0
|
|
44
|
+
DEFAULT_RETRY_COUNT = 5
|
|
45
|
+
|
|
46
|
+
def __init__(self, retry_count=None, delay=None, delay_factor=None):
|
|
47
|
+
self.retry_count = retry_count or self.DEFAULT_RETRY_COUNT
|
|
48
|
+
self.delay = max(delay, 0) if delay else 0
|
|
49
|
+
self.delay_factor = max(delay_factor, 0) if delay_factor else 0
|
|
50
|
+
|
|
51
|
+
def shouldRetry(self, stderr):
|
|
52
|
+
m = GIT_TRANSIENT_ERRORS_RE.search(stderr)
|
|
53
|
+
if not m:
|
|
54
|
+
return False
|
|
55
|
+
self.logger.info("Encountered known transient error: [%s]",
|
|
56
|
+
stderr[m.start(): m.end()])
|
|
57
|
+
return True
|
|
58
|
+
|
|
59
|
+
@staticmethod
|
|
60
|
+
def execute(*args):
|
|
61
|
+
args = (GIT_EXE,) + args
|
|
62
|
+
proc = subprocess.Popen(
|
|
63
|
+
args,
|
|
64
|
+
stderr=subprocess.PIPE,
|
|
65
|
+
)
|
|
66
|
+
stderr_tee = TeeThread(proc.stderr, sys.stderr, 'stderr')
|
|
67
|
+
|
|
68
|
+
# Start our process. Collect/tee 'stdout' and 'stderr'.
|
|
69
|
+
stderr_tee.start()
|
|
70
|
+
try:
|
|
71
|
+
proc.wait()
|
|
72
|
+
except KeyboardInterrupt:
|
|
73
|
+
proc.kill()
|
|
74
|
+
raise
|
|
75
|
+
finally:
|
|
76
|
+
stderr_tee.join()
|
|
77
|
+
return proc.returncode, None, stderr_tee.data
|
|
78
|
+
|
|
79
|
+
def computeDelay(self, iteration):
|
|
80
|
+
"""Returns: the delay (in seconds) for a given iteration
|
|
81
|
+
|
|
82
|
+
The first iteration has a delay of '0'.
|
|
83
|
+
|
|
84
|
+
Args:
|
|
85
|
+
iteration: (int) The iteration index (starting with zero as the first
|
|
86
|
+
iteration)
|
|
87
|
+
"""
|
|
88
|
+
if (not self.delay) or (iteration == 0):
|
|
89
|
+
return 0
|
|
90
|
+
if self.delay_factor == 0:
|
|
91
|
+
# Linear delay
|
|
92
|
+
return iteration * self.delay
|
|
93
|
+
# Exponential delay
|
|
94
|
+
return (self.delay_factor ** (iteration - 1)) * self.delay
|
|
95
|
+
|
|
96
|
+
def __call__(self, *args):
|
|
97
|
+
returncode = 0
|
|
98
|
+
for i in xrange(self.retry_count):
|
|
99
|
+
# If the previous run failed and a delay is configured, delay before the
|
|
100
|
+
# next run.
|
|
101
|
+
delay = self.computeDelay(i)
|
|
102
|
+
if delay > 0:
|
|
103
|
+
self.logger.info("Delaying for [%s second(s)] until next retry", delay)
|
|
104
|
+
time.sleep(delay)
|
|
105
|
+
|
|
106
|
+
self.logger.debug("Executing subprocess (%d/%d) with arguments: %s",
|
|
107
|
+
(i+1), self.retry_count, args)
|
|
108
|
+
returncode, _, stderr = self.execute(*args)
|
|
109
|
+
|
|
110
|
+
self.logger.debug("Process terminated with return code: %d", returncode)
|
|
111
|
+
if returncode == 0:
|
|
112
|
+
break
|
|
113
|
+
|
|
114
|
+
if not self.shouldRetry(stderr):
|
|
115
|
+
self.logger.error("Process failure was not known to be transient; "
|
|
116
|
+
"terminating with return code %d", returncode)
|
|
117
|
+
break
|
|
118
|
+
return returncode
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def main(args):
|
|
122
|
+
# If we're using the Infra Git wrapper, do nothing here.
|
|
123
|
+
# https://chromium.googlesource.com/infra/infra/+/master/go/src/infra/tools/git
|
|
124
|
+
if 'INFRA_GIT_WRAPPER' in os.environ:
|
|
125
|
+
# Remove Git's execution path from PATH so that our call-through re-invokes
|
|
126
|
+
# the Git wrapper.
|
|
127
|
+
# See crbug.com/721450
|
|
128
|
+
env = os.environ.copy()
|
|
129
|
+
git_exec = subprocess.check_output([GIT_EXE, '--exec-path']).strip()
|
|
130
|
+
env['PATH'] = os.pathsep.join([
|
|
131
|
+
elem for elem in env.get('PATH', '').split(os.pathsep)
|
|
132
|
+
if elem != git_exec])
|
|
133
|
+
return subprocess.call([GIT_EXE] + args, env=env)
|
|
134
|
+
|
|
135
|
+
parser = optparse.OptionParser()
|
|
136
|
+
parser.disable_interspersed_args()
|
|
137
|
+
parser.add_option('-v', '--verbose',
|
|
138
|
+
action='count', default=0,
|
|
139
|
+
help="Increase verbosity; can be specified multiple times")
|
|
140
|
+
parser.add_option('-c', '--retry-count', metavar='COUNT',
|
|
141
|
+
type=int, default=GitRetry.DEFAULT_RETRY_COUNT,
|
|
142
|
+
help="Number of times to retry (default=%default)")
|
|
143
|
+
parser.add_option('-d', '--delay', metavar='SECONDS',
|
|
144
|
+
type=float, default=GitRetry.DEFAULT_DELAY_SECS,
|
|
145
|
+
help="Specifies the amount of time (in seconds) to wait "
|
|
146
|
+
"between successive retries (default=%default). This "
|
|
147
|
+
"can be zero.")
|
|
148
|
+
parser.add_option('-D', '--delay-factor', metavar='FACTOR',
|
|
149
|
+
type=int, default=2,
|
|
150
|
+
help="The exponential factor to apply to delays in between "
|
|
151
|
+
"successive failures (default=%default). If this is "
|
|
152
|
+
"zero, delays will increase linearly. Set this to "
|
|
153
|
+
"one to have a constant (non-increasing) delay.")
|
|
154
|
+
|
|
155
|
+
opts, args = parser.parse_args(args)
|
|
156
|
+
|
|
157
|
+
# Configure logging verbosity
|
|
158
|
+
if opts.verbose == 0:
|
|
159
|
+
logging.getLogger().setLevel(logging.WARNING)
|
|
160
|
+
elif opts.verbose == 1:
|
|
161
|
+
logging.getLogger().setLevel(logging.INFO)
|
|
162
|
+
else:
|
|
163
|
+
logging.getLogger().setLevel(logging.DEBUG)
|
|
164
|
+
|
|
165
|
+
# Execute retries
|
|
166
|
+
retry = GitRetry(
|
|
167
|
+
retry_count=opts.retry_count,
|
|
168
|
+
delay=opts.delay,
|
|
169
|
+
delay_factor=opts.delay_factor,
|
|
170
|
+
)
|
|
171
|
+
return retry(*args)
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
if __name__ == '__main__':
|
|
175
|
+
logging.basicConfig()
|
|
176
|
+
logging.getLogger().setLevel(logging.WARNING)
|
|
177
|
+
try:
|
|
178
|
+
sys.exit(main(sys.argv[2:]))
|
|
179
|
+
except KeyboardInterrupt:
|
|
180
|
+
sys.stderr.write('interrupted\n')
|
|
181
|
+
sys.exit(1)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# Copyright 2014 The Chromium Authors. All rights reserved.
|
|
3
|
+
# Use of this source code is governed by a BSD-style license that can be
|
|
4
|
+
# found in the LICENSE file.
|
|
5
|
+
|
|
6
|
+
import argparse
|
|
7
|
+
import sys
|
|
8
|
+
|
|
9
|
+
import git_common
|
|
10
|
+
|
|
11
|
+
def main(args):
|
|
12
|
+
parser = argparse.ArgumentParser()
|
|
13
|
+
parser.add_argument(
|
|
14
|
+
'-m', '--message', metavar='<msg>', default=None,
|
|
15
|
+
help='Use the given <msg> as the first line of the commit message.')
|
|
16
|
+
opts = parser.parse_args(args)
|
|
17
|
+
if git_common.is_dirty_git_tree('squash-branch'):
|
|
18
|
+
return 1
|
|
19
|
+
git_common.squash_current_branch(opts.message)
|
|
20
|
+
return 0
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
if __name__ == '__main__':
|
|
24
|
+
try:
|
|
25
|
+
sys.exit(main(sys.argv[1:]))
|
|
26
|
+
except KeyboardInterrupt:
|
|
27
|
+
sys.stderr.write('interrupted\n')
|
|
28
|
+
sys.exit(1)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# Copyright 2014 The Chromium Authors. All rights reserved.
|
|
3
|
+
# Use of this source code is governed by a BSD-style license that can be
|
|
4
|
+
# found in the LICENSE file.
|
|
5
|
+
|
|
6
|
+
from __future__ import print_function
|
|
7
|
+
|
|
8
|
+
import argparse
|
|
9
|
+
import sys
|
|
10
|
+
|
|
11
|
+
import subprocess2
|
|
12
|
+
|
|
13
|
+
import git_common as git
|
|
14
|
+
|
|
15
|
+
def main(args):
|
|
16
|
+
default_args = git.get_config_list('depot-tools.upstream-diff.default-args')
|
|
17
|
+
args = default_args + args
|
|
18
|
+
|
|
19
|
+
current_branch = git.current_branch()
|
|
20
|
+
|
|
21
|
+
parser = argparse.ArgumentParser()
|
|
22
|
+
parser.add_argument('--wordwise', action='store_true', default=False,
|
|
23
|
+
help=(
|
|
24
|
+
'Print a colorized wordwise diff '
|
|
25
|
+
'instead of line-wise diff'))
|
|
26
|
+
parser.add_argument('--branch', default=current_branch,
|
|
27
|
+
help='Show changes from a different branch. Passing '
|
|
28
|
+
'"HEAD" is the same as omitting this option (it '
|
|
29
|
+
'diffs against the current branch)')
|
|
30
|
+
opts, extra_args = parser.parse_known_args(args)
|
|
31
|
+
|
|
32
|
+
if opts.branch == 'HEAD':
|
|
33
|
+
opts.branch = current_branch
|
|
34
|
+
|
|
35
|
+
if not opts.branch or opts.branch == 'HEAD':
|
|
36
|
+
print('fatal: Cannot perform git-upstream-diff while not on a branch')
|
|
37
|
+
return 1
|
|
38
|
+
|
|
39
|
+
par = git.upstream(opts.branch)
|
|
40
|
+
if not par:
|
|
41
|
+
print('fatal: No upstream configured for branch \'%s\'' % opts.branch)
|
|
42
|
+
return 1
|
|
43
|
+
|
|
44
|
+
cmd = [git.GIT_EXE, '-c', 'core.quotePath=false',
|
|
45
|
+
'diff', '--patience', '-C', '-C']
|
|
46
|
+
if opts.wordwise:
|
|
47
|
+
cmd += ['--word-diff=color', r'--word-diff-regex=(\w+|[^[:space:]])']
|
|
48
|
+
cmd += [git.get_or_create_merge_base(opts.branch, par)]
|
|
49
|
+
# Only specify the end commit if it is not the current branch, this lets the
|
|
50
|
+
# diff include uncommitted changes when diffing the current branch.
|
|
51
|
+
if opts.branch != current_branch:
|
|
52
|
+
cmd += [opts.branch]
|
|
53
|
+
|
|
54
|
+
cmd += extra_args
|
|
55
|
+
|
|
56
|
+
return subprocess2.check_call(cmd)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
if __name__ == '__main__':
|
|
60
|
+
try:
|
|
61
|
+
sys.exit(main(sys.argv[1:]))
|
|
62
|
+
except KeyboardInterrupt:
|
|
63
|
+
sys.stderr.write('interrupted\n')
|
|
64
|
+
sys.exit(1)
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Copyright 2013 The Chromium Authors. All rights reserved.
|
|
3
|
+
# Use of this source code is governed by a BSD-style license that can be
|
|
4
|
+
# found in the LICENSE file.
|
|
5
|
+
|
|
6
|
+
base_dir=$(dirname "$0")
|
|
7
|
+
|
|
8
|
+
PYTHONDONTWRITEBYTECODE=1 exec python "$base_dir/gn.py" "$@"
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
@echo off
|
|
2
|
+
:: Copyright 2013 The Chromium Authors. All rights reserved.
|
|
3
|
+
:: Use of this source code is governed by a BSD-style license that can be
|
|
4
|
+
:: found in the LICENSE file.
|
|
5
|
+
setlocal
|
|
6
|
+
|
|
7
|
+
:: Ensure that "depot_tools" is somewhere in PATH so this tool can be used
|
|
8
|
+
:: standalone, but allow other PATH manipulations to take priority.
|
|
9
|
+
set PATH=%PATH%;%~dp0
|
|
10
|
+
|
|
11
|
+
:: Defer control.
|
|
12
|
+
python "%~dp0\gn.py" %*
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# Copyright 2013 The Chromium Authors. All rights reserved.
|
|
3
|
+
# Use of this source code is governed by a BSD-style license that can be
|
|
4
|
+
# found in the LICENSE file.
|
|
5
|
+
|
|
6
|
+
"""This script is a wrapper around the GN binary that is pulled from Google
|
|
7
|
+
Cloud Storage when you sync Chrome. The binaries go into platform-specific
|
|
8
|
+
subdirectories in the source tree.
|
|
9
|
+
|
|
10
|
+
This script makes there be one place for forwarding to the correct platform's
|
|
11
|
+
binary. It will also automatically try to find the gn binary when run inside
|
|
12
|
+
the chrome source tree, so users can just type "gn" on the command line
|
|
13
|
+
(normally depot_tools is on the path)."""
|
|
14
|
+
|
|
15
|
+
from __future__ import print_function
|
|
16
|
+
|
|
17
|
+
import gclient_paths
|
|
18
|
+
import os
|
|
19
|
+
import subprocess
|
|
20
|
+
import sys
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def PruneVirtualEnv():
|
|
24
|
+
# Set by VirtualEnv, no need to keep it.
|
|
25
|
+
os.environ.pop('VIRTUAL_ENV', None)
|
|
26
|
+
|
|
27
|
+
# Set by VPython, if scripts want it back they have to set it explicitly.
|
|
28
|
+
os.environ.pop('PYTHONNOUSERSITE', None)
|
|
29
|
+
|
|
30
|
+
# Look for "activate_this.py" in this path, which is installed by VirtualEnv.
|
|
31
|
+
# This mechanism is used by vpython as well to sanitize VirtualEnvs from
|
|
32
|
+
# $PATH.
|
|
33
|
+
os.environ['PATH'] = os.pathsep.join([
|
|
34
|
+
p for p in os.environ.get('PATH', '').split(os.pathsep)
|
|
35
|
+
if not os.path.isfile(os.path.join(p, 'activate_this.py'))
|
|
36
|
+
])
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def main(args):
|
|
40
|
+
# Prune all evidence of VPython/VirtualEnv out of the environment. This means
|
|
41
|
+
# that we 'unwrap' vpython VirtualEnv path/env manipulation. Invocations of
|
|
42
|
+
# `python` from GN should never inherit the gn.py's own VirtualEnv. This also
|
|
43
|
+
# helps to ensure that generated ninja files do not reference python.exe from
|
|
44
|
+
# the VirtualEnv generated from depot_tools' own .vpython file (or lack
|
|
45
|
+
# thereof), but instead reference the default python from the PATH.
|
|
46
|
+
PruneVirtualEnv()
|
|
47
|
+
|
|
48
|
+
# Try in primary solution location first, with the gn binary having been
|
|
49
|
+
# downloaded by cipd in the projects DEPS.
|
|
50
|
+
primary_solution_path = gclient_paths.GetPrimarySolutionPath()
|
|
51
|
+
if primary_solution_path:
|
|
52
|
+
gn_path = os.path.join(primary_solution_path, 'third_party',
|
|
53
|
+
'gn', 'gn' + gclient_paths.GetExeSuffix())
|
|
54
|
+
if os.path.exists(gn_path):
|
|
55
|
+
return subprocess.call([gn_path] + args[1:])
|
|
56
|
+
|
|
57
|
+
# Otherwise try the old .sha1 and download_from_google_storage locations
|
|
58
|
+
# inside of buildtools.
|
|
59
|
+
bin_path = gclient_paths.GetBuildtoolsPlatformBinaryPath()
|
|
60
|
+
if not bin_path:
|
|
61
|
+
print('gn.py: Could not find checkout in any parent of the current path.\n'
|
|
62
|
+
'This must be run inside a checkout.', file=sys.stderr)
|
|
63
|
+
return 1
|
|
64
|
+
gn_path = os.path.join(bin_path, 'gn' + gclient_paths.GetExeSuffix())
|
|
65
|
+
if not os.path.exists(gn_path):
|
|
66
|
+
print(
|
|
67
|
+
'gn.py: Could not find gn executable at: %s' % gn_path, file=sys.stderr)
|
|
68
|
+
return 2
|
|
69
|
+
else:
|
|
70
|
+
return subprocess.call([gn_path] + args[1:])
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
if __name__ == '__main__':
|
|
74
|
+
try:
|
|
75
|
+
sys.exit(main(sys.argv))
|
|
76
|
+
except KeyboardInterrupt:
|
|
77
|
+
sys.stderr.write('interrupted\n')
|
|
78
|
+
sys.exit(1)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Copyright 2019 The Chromium Authors. All rights reserved.
|
|
4
|
+
# Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
# found in the LICENSE file.
|
|
6
|
+
|
|
7
|
+
MYPATH=$(dirname "${BASH_SOURCE[0]}")
|
|
8
|
+
|
|
9
|
+
source "$MYPATH/cipd_bin_setup.sh"
|
|
10
|
+
cipd_bin_setup &> /dev/null
|
|
11
|
+
|
|
12
|
+
PYTHONDONTWRITEBYTECODE=1 exec python "$MYPATH/.cipd_bin/goma_auth.py" "$@"
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
@echo off
|
|
2
|
+
:: Copyright 2019 The Chromium Authors. All rights reserved.
|
|
3
|
+
:: Use of this source code is governed by a BSD-style license that can be
|
|
4
|
+
:: found in the LICENSE file.
|
|
5
|
+
|
|
6
|
+
@call "%~dp0\cipd_bin_setup.bat" > nul 2>&1
|
|
7
|
+
@call python.bat %~dp0\.cipd_bin\goma_auth.py %*
|
|
8
|
+
exit /b
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Copyright 2019 The Chromium Authors. All rights reserved.
|
|
4
|
+
# Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
# found in the LICENSE file.
|
|
6
|
+
|
|
7
|
+
MYPATH=$(dirname "${BASH_SOURCE[0]}")
|
|
8
|
+
|
|
9
|
+
source "$MYPATH/cipd_bin_setup.sh"
|
|
10
|
+
cipd_bin_setup &> /dev/null
|
|
11
|
+
|
|
12
|
+
PYTHONDONTWRITEBYTECODE=1 exec vpython "$MYPATH/.cipd_bin/goma_ctl.py" "$@"
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
@echo off
|
|
2
|
+
:: Copyright 2019 The Chromium Authors. All rights reserved.
|
|
3
|
+
:: Use of this source code is governed by a BSD-style license that can be
|
|
4
|
+
:: found in the LICENSE file.
|
|
5
|
+
|
|
6
|
+
@call "%~dp0\cipd_bin_setup.bat" > nul 2>&1
|
|
7
|
+
@call vpython.bat %~dp0\.cipd_bin\goma_ctl.py %*
|
|
8
|
+
exit /b
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# Copyright 2014 The Chromium Authors. All rights reserved.
|
|
3
|
+
# Use of this source code is governed by a BSD-style license that can be
|
|
4
|
+
# found in the LICENSE file.
|
|
5
|
+
|
|
6
|
+
"""Run a pinned gsutil."""
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
import argparse
|
|
10
|
+
import base64
|
|
11
|
+
import contextlib
|
|
12
|
+
import hashlib
|
|
13
|
+
import json
|
|
14
|
+
import os
|
|
15
|
+
import shutil
|
|
16
|
+
import subprocess
|
|
17
|
+
import sys
|
|
18
|
+
import tempfile
|
|
19
|
+
import time
|
|
20
|
+
|
|
21
|
+
try:
|
|
22
|
+
import urllib2 as urllib
|
|
23
|
+
except ImportError: # For Py3 compatibility
|
|
24
|
+
import urllib.request as urllib
|
|
25
|
+
|
|
26
|
+
import zipfile
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
GSUTIL_URL = 'https://storage.googleapis.com/pub/'
|
|
30
|
+
API_URL = 'https://www.googleapis.com/storage/v1/b/pub/o/'
|
|
31
|
+
|
|
32
|
+
THIS_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
33
|
+
DEFAULT_BIN_DIR = os.path.join(THIS_DIR, 'external_bin', 'gsutil')
|
|
34
|
+
DEFAULT_FALLBACK_GSUTIL = os.path.join(
|
|
35
|
+
THIS_DIR, 'third_party', 'gsutil', 'gsutil')
|
|
36
|
+
|
|
37
|
+
IS_WINDOWS = os.name == 'nt'
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class InvalidGsutilError(Exception):
|
|
41
|
+
pass
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def download_gsutil(version, target_dir):
|
|
45
|
+
"""Downloads gsutil into the target_dir."""
|
|
46
|
+
filename = 'gsutil_%s.zip' % version
|
|
47
|
+
target_filename = os.path.join(target_dir, filename)
|
|
48
|
+
|
|
49
|
+
# Check if the target exists already.
|
|
50
|
+
if os.path.exists(target_filename):
|
|
51
|
+
md5_calc = hashlib.md5()
|
|
52
|
+
with open(target_filename, 'rb') as f:
|
|
53
|
+
while True:
|
|
54
|
+
buf = f.read(4096)
|
|
55
|
+
if not buf:
|
|
56
|
+
break
|
|
57
|
+
md5_calc.update(buf)
|
|
58
|
+
local_md5 = md5_calc.hexdigest()
|
|
59
|
+
|
|
60
|
+
metadata_url = '%s%s' % (API_URL, filename)
|
|
61
|
+
metadata = json.load(urllib.urlopen(metadata_url))
|
|
62
|
+
remote_md5 = base64.b64decode(metadata['md5Hash']).decode('utf-8')
|
|
63
|
+
|
|
64
|
+
if local_md5 == remote_md5:
|
|
65
|
+
return target_filename
|
|
66
|
+
os.remove(target_filename)
|
|
67
|
+
|
|
68
|
+
# Do the download.
|
|
69
|
+
url = '%s%s' % (GSUTIL_URL, filename)
|
|
70
|
+
u = urllib.urlopen(url)
|
|
71
|
+
with open(target_filename, 'wb') as f:
|
|
72
|
+
while True:
|
|
73
|
+
buf = u.read(4096)
|
|
74
|
+
if not buf:
|
|
75
|
+
break
|
|
76
|
+
f.write(buf)
|
|
77
|
+
return target_filename
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
@contextlib.contextmanager
|
|
81
|
+
def temporary_directory(base):
|
|
82
|
+
tmpdir = tempfile.mkdtemp(prefix='gsutil_py', dir=base)
|
|
83
|
+
try:
|
|
84
|
+
yield tmpdir
|
|
85
|
+
finally:
|
|
86
|
+
if os.path.isdir(tmpdir):
|
|
87
|
+
shutil.rmtree(tmpdir)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def ensure_gsutil(version, target, clean):
|
|
91
|
+
bin_dir = os.path.join(target, 'gsutil_%s' % version)
|
|
92
|
+
gsutil_bin = os.path.join(bin_dir, 'gsutil', 'gsutil')
|
|
93
|
+
gsutil_flag = os.path.join(bin_dir, 'gsutil', 'install.flag')
|
|
94
|
+
# We assume that if gsutil_flag exists, then we have a good version
|
|
95
|
+
# of the gsutil package.
|
|
96
|
+
if not clean and os.path.isfile(gsutil_flag):
|
|
97
|
+
# Everything is awesome! we're all done here.
|
|
98
|
+
return gsutil_bin
|
|
99
|
+
|
|
100
|
+
if not os.path.exists(target):
|
|
101
|
+
os.makedirs(target)
|
|
102
|
+
with temporary_directory(target) as instance_dir:
|
|
103
|
+
# Clean up if we're redownloading a corrupted gsutil.
|
|
104
|
+
cleanup_path = os.path.join(instance_dir, 'clean')
|
|
105
|
+
try:
|
|
106
|
+
os.rename(bin_dir, cleanup_path)
|
|
107
|
+
except (OSError, IOError):
|
|
108
|
+
cleanup_path = None
|
|
109
|
+
if cleanup_path:
|
|
110
|
+
shutil.rmtree(cleanup_path)
|
|
111
|
+
|
|
112
|
+
download_dir = os.path.join(instance_dir, 'download')
|
|
113
|
+
target_zip_filename = download_gsutil(version, instance_dir)
|
|
114
|
+
with zipfile.ZipFile(target_zip_filename, 'r') as target_zip:
|
|
115
|
+
target_zip.extractall(download_dir)
|
|
116
|
+
|
|
117
|
+
try:
|
|
118
|
+
os.rename(download_dir, bin_dir)
|
|
119
|
+
except (OSError, IOError):
|
|
120
|
+
# Something else did this in parallel.
|
|
121
|
+
pass
|
|
122
|
+
# Final check that the gsutil bin exists. This should never fail.
|
|
123
|
+
if not os.path.isfile(gsutil_bin):
|
|
124
|
+
raise InvalidGsutilError()
|
|
125
|
+
# Drop a flag file.
|
|
126
|
+
with open(gsutil_flag, 'w') as f:
|
|
127
|
+
f.write('This flag file is dropped by gsutil.py')
|
|
128
|
+
|
|
129
|
+
return gsutil_bin
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
def run_gsutil(force_version, fallback, target, args, clean=False):
|
|
133
|
+
if force_version:
|
|
134
|
+
gsutil_bin = ensure_gsutil(force_version, target, clean)
|
|
135
|
+
else:
|
|
136
|
+
gsutil_bin = fallback
|
|
137
|
+
disable_update = ['-o', 'GSUtil:software_update_check_period=0']
|
|
138
|
+
|
|
139
|
+
if sys.platform == 'cygwin':
|
|
140
|
+
# This script requires Windows Python, so invoke with depot_tools'
|
|
141
|
+
# Python.
|
|
142
|
+
def winpath(path):
|
|
143
|
+
stdout = subprocess.check_output(['cygpath', '-w', path])
|
|
144
|
+
return stdout.strip().decode('utf-8', 'replace')
|
|
145
|
+
cmd = ['python.bat', winpath(__file__)]
|
|
146
|
+
cmd.extend(args)
|
|
147
|
+
sys.exit(subprocess.call(cmd))
|
|
148
|
+
assert sys.platform != 'cygwin'
|
|
149
|
+
|
|
150
|
+
# Run "gsutil" through "vpython". We need to do this because on GCE instances,
|
|
151
|
+
# expectations are made about Python having access to "google-compute-engine"
|
|
152
|
+
# and "boto" packages that are not met with non-system Python (e.g., bundles).
|
|
153
|
+
cmd = [
|
|
154
|
+
'vpython',
|
|
155
|
+
'-vpython-spec', os.path.join(THIS_DIR, 'gsutil.vpython'),
|
|
156
|
+
'--',
|
|
157
|
+
gsutil_bin
|
|
158
|
+
] + disable_update + args
|
|
159
|
+
return subprocess.call(cmd, shell=IS_WINDOWS)
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
def parse_args():
|
|
163
|
+
bin_dir = os.environ.get('DEPOT_TOOLS_GSUTIL_BIN_DIR', DEFAULT_BIN_DIR)
|
|
164
|
+
|
|
165
|
+
parser = argparse.ArgumentParser()
|
|
166
|
+
parser.add_argument('--force-version', default='4.30')
|
|
167
|
+
parser.add_argument('--clean', action='store_true',
|
|
168
|
+
help='Clear any existing gsutil package, forcing a new download.')
|
|
169
|
+
parser.add_argument('--fallback', default=DEFAULT_FALLBACK_GSUTIL)
|
|
170
|
+
parser.add_argument('--target', default=bin_dir,
|
|
171
|
+
help='The target directory to download/store a gsutil version in. '
|
|
172
|
+
'(default is %(default)s).')
|
|
173
|
+
parser.add_argument('args', nargs=argparse.REMAINDER)
|
|
174
|
+
|
|
175
|
+
args, extras = parser.parse_known_args()
|
|
176
|
+
if args.args and args.args[0] == '--':
|
|
177
|
+
args.args.pop(0)
|
|
178
|
+
if extras:
|
|
179
|
+
args.args = extras + args.args
|
|
180
|
+
return args
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
def main():
|
|
184
|
+
args = parse_args()
|
|
185
|
+
return run_gsutil(args.force_version, args.fallback, args.target, args.args,
|
|
186
|
+
clean=args.clean)
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
if __name__ == '__main__':
|
|
190
|
+
sys.exit(main())
|