wip nix
$ ./ci/test bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) + cache_prefix=/tmp/bazel-zig-cc + echo '--- build a single target with very hermetic sandbox' --- build a single target with very hermetic sandbox + bazel build --experimental_use_hermetic_linux_sandbox --sandbox_writable_path=/tmp/bazel-zig-cc --sandbox_add_mount_pair=/proc //test/c:which_libc_linux_amd64_gnu.2.19 /nix/store/96ky1zdkpq871h2dlk198fz0zvklr1dr-bash-5.1-p16/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /nix/store/96ky1zdkpq871h2dlk198fz0zvklr1dr-bash-5.1-p16/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) INFO: Analyzed target //test/c:which_libc_linux_amd64_gnu.2.19 (0 packages loaded, 0 targets configured). INFO: Found 1 target... Target //test/c:which_libc_linux_amd64_gnu.2.19 up-to-date: bazel-bin/test/c/which_libc_/libc_aware/platform:linux_amd64_gnu.2.19 INFO: Elapsed time: 1.147s, Critical Path: 0.02s INFO: 1 process: 1 internal. INFO: Build completed successfully, 1 total action + echo '--- bazel test ...' --- bazel test ... + bazel test ... /nix/store/96ky1zdkpq871h2dlk198fz0zvklr1dr-bash-5.1-p16/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /nix/store/96ky1zdkpq871h2dlk198fz0zvklr1dr-bash-5.1-p16/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) ERROR: /home/motiejus/.cache/bazel/_bazel_motiejus/6ec14a6813f13f2c8f1d8cce5637da2e/external/local_jdk/BUILD.bazel:2:10: in fail_rule rule @local_jdk//:jdk: Traceback (most recent call last): File "/home/motiejus/.cache/bazel/_bazel_motiejus/6ec14a6813f13f2c8f1d8cce5637da2e/external/bazel_tools/tools/jdk/fail_rule.bzl", line 19, column 13, in _fail_rule_impl fail("%s %s" % (ctx.attr.header, ctx.attr.message)) Error in fail: Auto-Configuration Error: Cannot find Java binary bin/java in /home/motiejus/.cache/bazel/_bazel_motiejus/install/1349a6142c7ce93610b5832496a88870/embedded_tools/tools/jdk/nosystemjdk; either correct your JAVA_HOME, PATH or specify Java from remote repository (e.g. --java_runtime_version=remotejdk_11 ERROR: /home/motiejus/.cache/bazel/_bazel_motiejus/6ec14a6813f13f2c8f1d8cce5637da2e/external/local_jdk/BUILD.bazel:2:10: Analysis of target '@local_jdk//:jdk' failed ERROR: Analysis of target '//.direnv/flake-inputs/hfjyanh5shjsx6m3h1k8gw61s3azkk68-source/test/cgo:cgo_test_linux_amd64_gnu.2.19' failed; build aborted: INFO: Elapsed time: 1.853s INFO: 0 processes. FAILED: Build did NOT complete successfully (70 packages loaded, 11766 targets configured) Fetching repository @nixpkgs_go; Building Nix derivation ERROR: Couldn't start the build. Unable to run tests motiejus@mtwork:/code/bazel-zig-cc$
This commit is contained in:
parent
6d2ee8cad0
commit
2ea75419e0
7
.bazelrc
7
.bazelrc
@ -7,3 +7,10 @@ build --worker_sandboxing
|
|||||||
build --experimental_reuse_sandbox_directories
|
build --experimental_reuse_sandbox_directories
|
||||||
build --incompatible_enable_cc_toolchain_resolution
|
build --incompatible_enable_cc_toolchain_resolution
|
||||||
build --action_env BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
|
build --action_env BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
|
||||||
|
|
||||||
|
#https://github.com/tweag/rules_nixpkgs#nixpkgs_java_configure
|
||||||
|
build --host_platform=@io_tweag_rules_nixpkgs//nixpkgs/platforms:host
|
||||||
|
build --java_runtime_version=nixpkgs_java_11
|
||||||
|
build --tool_java_runtime_version=nixpkgs_java_11
|
||||||
|
build --java_language_version=11
|
||||||
|
build --tool_java_language_version=11
|
||||||
|
@ -1 +0,0 @@
|
|||||||
6.0.0
|
|
8
.envrc
8
.envrc
@ -1,7 +1,9 @@
|
|||||||
# Copyright 2023 Uber Technologies, Inc.
|
# Copyright 2023 Uber Technologies, Inc.
|
||||||
# Licensed under the Apache License, Version 2.0
|
# Licensed under the Apache License, Version 2.0
|
||||||
|
|
||||||
set -eu
|
if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then
|
||||||
|
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs="
|
||||||
|
fi
|
||||||
|
|
||||||
BIN_DIR="$(git rev-parse --show-toplevel)/tools"
|
# Load the development shell defined in the flake.nix file
|
||||||
export PATH="$BIN_DIR:$PATH"
|
use flake
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,5 +1,6 @@
|
|||||||
*~
|
*~
|
||||||
*.sw[op]
|
*.sw[op]
|
||||||
|
/.direnv
|
||||||
|
|
||||||
/bazel-bazel-zig-cc
|
/bazel-bazel-zig-cc
|
||||||
/bazel-bin
|
/bazel-bin
|
||||||
|
15
BUILD
15
BUILD
@ -1,22 +1,7 @@
|
|||||||
# Copyright 2023 Uber Technologies, Inc.
|
# Copyright 2023 Uber Technologies, Inc.
|
||||||
# Licensed under the Apache License, Version 2.0
|
# Licensed under the Apache License, Version 2.0
|
||||||
|
|
||||||
load("@bazel_gazelle//:def.bzl", "gazelle")
|
|
||||||
|
|
||||||
# gazelle:map_kind go_binary go_binary //rules:rules_go.bzl
|
# gazelle:map_kind go_binary go_binary //rules:rules_go.bzl
|
||||||
|
|
||||||
# gazelle:build_file_name BUILD
|
# gazelle:build_file_name BUILD
|
||||||
# gazelle:prefix github.com/uber/bazel-zig-cc
|
# gazelle:prefix github.com/uber/bazel-zig-cc
|
||||||
# gazelle:exclude tools.go
|
# gazelle:exclude tools.go
|
||||||
|
|
||||||
gazelle(name = "gazelle")
|
|
||||||
|
|
||||||
gazelle(
|
|
||||||
name = "gazelle-update-repos",
|
|
||||||
args = [
|
|
||||||
"-from_file=go.mod",
|
|
||||||
"-to_macro=repositories.bzl%go_repositories",
|
|
||||||
"-prune",
|
|
||||||
],
|
|
||||||
command = "update-repos",
|
|
||||||
)
|
|
||||||
|
35
WORKSPACE
35
WORKSPACE
@ -4,6 +4,12 @@ workspace(
|
|||||||
|
|
||||||
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||||
|
|
||||||
|
http_archive(
|
||||||
|
name = "io_tweag_rules_nixpkgs",
|
||||||
|
strip_prefix = "rules_nixpkgs-f6df41ce89814672d656c9d4d61c65867fb4981a",
|
||||||
|
urls = ["https://github.com/tweag/rules_nixpkgs/archive/f6df41ce89814672d656c9d4d61c65867fb4981a.tar.gz"],
|
||||||
|
)
|
||||||
|
|
||||||
http_archive(
|
http_archive(
|
||||||
name = "io_bazel_rules_go",
|
name = "io_bazel_rules_go",
|
||||||
sha256 = "dd926a88a564a9246713a9c00b35315f54cbd46b31a26d5d8fb264c07045f05d",
|
sha256 = "dd926a88a564a9246713a9c00b35315f54cbd46b31a26d5d8fb264c07045f05d",
|
||||||
@ -22,6 +28,35 @@ http_archive(
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
load("@io_tweag_rules_nixpkgs//nixpkgs:repositories.bzl", "rules_nixpkgs_dependencies")
|
||||||
|
|
||||||
|
rules_nixpkgs_dependencies()
|
||||||
|
|
||||||
|
load("@io_tweag_rules_nixpkgs//nixpkgs:nixpkgs.bzl", "nixpkgs_cc_configure", "nixpkgs_local_repository")
|
||||||
|
|
||||||
|
nixpkgs_local_repository(
|
||||||
|
name = "nixpkgs",
|
||||||
|
nix_file = "//:nixpkgs.nix",
|
||||||
|
nix_file_deps = ["//:flake.lock"],
|
||||||
|
)
|
||||||
|
|
||||||
|
load("@io_tweag_rules_nixpkgs//nixpkgs:toolchains/go.bzl", "nixpkgs_go_configure")
|
||||||
|
|
||||||
|
nixpkgs_go_configure(
|
||||||
|
repository = "@nixpkgs",
|
||||||
|
sdk_name = "nixpkgs_go",
|
||||||
|
)
|
||||||
|
|
||||||
|
load("@io_tweag_rules_nixpkgs//nixpkgs:nixpkgs.bzl", "nixpkgs_java_configure")
|
||||||
|
|
||||||
|
nixpkgs_java_configure(
|
||||||
|
attribute_path = "jdk11.home",
|
||||||
|
repository = "@nixpkgs",
|
||||||
|
toolchain = True,
|
||||||
|
toolchain_name = "nixpkgs_java",
|
||||||
|
toolchain_version = "11",
|
||||||
|
)
|
||||||
|
|
||||||
load("@io_bazel_rules_go//go:deps.bzl", "go_download_sdk", "go_register_toolchains", "go_rules_dependencies")
|
load("@io_bazel_rules_go//go:deps.bzl", "go_download_sdk", "go_register_toolchains", "go_rules_dependencies")
|
||||||
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
|
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
set -xeuo pipefail
|
set -xeuo pipefail
|
||||||
|
|
||||||
echo "--- which zig"
|
echo "--- which zig"
|
||||||
ZIG=${ZIG:-$(tools/bazel run "$@" --run_under=echo @zig_sdk//:zig)}
|
ZIG=${ZIG:-$(bazel run "$@" --run_under=echo @zig_sdk//:zig)}
|
||||||
|
|
||||||
echo "--- compile launcher.zig for various architectures"
|
echo "--- compile launcher.zig for various architectures"
|
||||||
for target in \
|
for target in \
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
set -xeuo pipefail
|
set -xeuo pipefail
|
||||||
|
|
||||||
echo "--- which zig"
|
echo "--- which zig"
|
||||||
ZIG=${ZIG:-$(tools/bazel run "$@" --run_under=echo @zig_sdk//:zig)}
|
ZIG=${ZIG:-$(bazel run "$@" --run_under=echo @zig_sdk//:zig)}
|
||||||
|
|
||||||
echo "--- test toolchain/launcher.zig via wine64"
|
echo "--- test toolchain/launcher.zig via wine64"
|
||||||
# ReleaseSafe because of https://github.com/ziglang/zig/issues/14036
|
# ReleaseSafe because of https://github.com/ziglang/zig/issues/14036
|
||||||
|
2
ci/lint
2
ci/lint
@ -23,4 +23,4 @@ tools/buildifier -r -mode check "$PWD"
|
|||||||
>&2 echo -e "OK\n"
|
>&2 echo -e "OK\n"
|
||||||
|
|
||||||
>&2 echo "--- Gazelle :goat:"
|
>&2 echo "--- Gazelle :goat:"
|
||||||
tools/bazel run //:gazelle -- -mode diff
|
bazel run //:gazelle -- -mode diff
|
||||||
|
@ -8,12 +8,12 @@ set -euo pipefail
|
|||||||
indent() { sed 's/^/ /'; }
|
indent() { sed 's/^/ /'; }
|
||||||
|
|
||||||
echo "--- Available toolchains:"
|
echo "--- Available toolchains:"
|
||||||
tools/bazel query --noshow_progress '@zig_sdk//toolchain:*' | indent
|
bazel query --noshow_progress '@zig_sdk//toolchain:*' | indent
|
||||||
echo "--- Available platforms:"
|
echo "--- Available platforms:"
|
||||||
tools/bazel query --noshow_progress '@zig_sdk//platform:*' | indent
|
bazel query --noshow_progress '@zig_sdk//platform:*' | indent
|
||||||
echo "--- Available libc aware toolchains:"
|
echo "--- Available libc aware toolchains:"
|
||||||
tools/bazel query --noshow_progress '@zig_sdk//libc_aware/toolchain:*' | indent
|
bazel query --noshow_progress '@zig_sdk//libc_aware/toolchain:*' | indent
|
||||||
echo "--- Available libc aware platforms:"
|
echo "--- Available libc aware platforms:"
|
||||||
tools/bazel query --noshow_progress '@zig_sdk//libc_aware/platform:*' | indent
|
bazel query --noshow_progress '@zig_sdk//libc_aware/platform:*' | indent
|
||||||
echo "--- Available libc variants:"
|
echo "--- Available libc variants:"
|
||||||
tools/bazel query --noshow_progress "attr(constraint_setting, @zig_sdk//libc:variant, @zig_sdk//...)" | indent
|
bazel query --noshow_progress "attr(constraint_setting, @zig_sdk//libc:variant, @zig_sdk//...)" | indent
|
||||||
|
@ -8,7 +8,7 @@ set -xeuo pipefail
|
|||||||
cd "$(git rev-parse --show-toplevel)"
|
cd "$(git rev-parse --show-toplevel)"
|
||||||
prev_ref=$(git rev-parse HEAD)
|
prev_ref=$(git rev-parse HEAD)
|
||||||
git commit --allow-empty -m "this is a test commit"
|
git commit --allow-empty -m "this is a test commit"
|
||||||
tools/bazel run //tools/releaser -- -tag v99.0.0
|
bazel run //tools/releaser -- -tag v99.0.0
|
||||||
cleanup() { git tag -d v99.0.0; git reset --hard "$prev_ref"; }
|
cleanup() { git tag -d v99.0.0; git reset --hard "$prev_ref"; }
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
4
ci/test
4
ci/test
@ -13,7 +13,7 @@ cache_prefix="${BAZEL_ZIG_CC_CACHE_PREFIX:-/tmp/bazel-zig-cc}"
|
|||||||
# linux.
|
# linux.
|
||||||
|
|
||||||
echo "--- build a single target with very hermetic sandbox"
|
echo "--- build a single target with very hermetic sandbox"
|
||||||
tools/bazel build "$@" \
|
bazel build "$@" \
|
||||||
--experimental_use_hermetic_linux_sandbox \
|
--experimental_use_hermetic_linux_sandbox \
|
||||||
--sandbox_writable_path="$cache_prefix" \
|
--sandbox_writable_path="$cache_prefix" \
|
||||||
--sandbox_add_mount_pair=/proc \
|
--sandbox_add_mount_pair=/proc \
|
||||||
@ -21,7 +21,7 @@ tools/bazel build "$@" \
|
|||||||
|
|
||||||
# then test everything else with the standard sandbox
|
# then test everything else with the standard sandbox
|
||||||
echo "--- bazel test $* ..."
|
echo "--- bazel test $* ..."
|
||||||
tools/bazel test "$@" ...
|
bazel test "$@" ...
|
||||||
|
|
||||||
echo "--- ensure github.com/ziglang/zig/issues/13050 does not regress"
|
echo "--- ensure github.com/ziglang/zig/issues/13050 does not regress"
|
||||||
find "$cache_prefix" \
|
find "$cache_prefix" \
|
||||||
|
60
flake.lock
Normal file
60
flake.lock
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1673956053,
|
||||||
|
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1678901627,
|
||||||
|
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1679472241,
|
||||||
|
"narHash": "sha256-VK2YDic2NjPvfsuneJCLIrWS38qUfoW8rLLimx0rWXA=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "9ef6e7727f4c31507627815d4f8679c5841efb00",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-22.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
21
flake.nix
Normal file
21
flake.nix
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11";
|
||||||
|
flake-compat = {
|
||||||
|
url = "github:edolstra/flake-compat";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
outputs = { nixpkgs, flake-utils, ... }:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
let
|
||||||
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
devShells.default = with pkgs; mkShell {
|
||||||
|
name = "rules_nixpkgs_shell";
|
||||||
|
packages = [ bazel_6 bazel-buildtools bazel-gazelle ];
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
7
go.mod
7
go.mod
@ -1,10 +1,3 @@
|
|||||||
module github.com/uber/bazel-zig-cc
|
module github.com/uber/bazel-zig-cc
|
||||||
|
|
||||||
go 1.19
|
go 1.19
|
||||||
|
|
||||||
require github.com/bazelbuild/buildtools v0.0.0-20230302165817-a6ca93fd072d
|
|
||||||
|
|
||||||
require (
|
|
||||||
github.com/golang/protobuf v1.5.2 // indirect
|
|
||||||
google.golang.org/protobuf v1.28.1 // indirect
|
|
||||||
)
|
|
||||||
|
82
go.sum
82
go.sum
@ -1,82 +0,0 @@
|
|||||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
|
||||||
github.com/bazelbuild/buildtools v0.0.0-20230302165817-a6ca93fd072d h1:AfqOWCQPEd/qAi41zI5ovrK0d5oQbXdX+l5VonjZq7A=
|
|
||||||
github.com/bazelbuild/buildtools v0.0.0-20230302165817-a6ca93fd072d/go.mod h1:689QdV3hBP7Vo9dJMmzhoYIyo/9iMhEmHkJcnaPRCbo=
|
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
|
||||||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
|
||||||
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
|
|
||||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
|
||||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
|
||||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
|
||||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
|
||||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
|
||||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
|
||||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
|
||||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
|
||||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
|
|
||||||
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
|
|
||||||
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
|
|
||||||
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
|
|
||||||
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
|
|
||||||
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
|
||||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
|
||||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
|
||||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
|
||||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
|
||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
|
||||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
|
||||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
||||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
||||||
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
||||||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
|
||||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
||||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
|
||||||
go.starlark.net v0.0.0-20210223155950-e043a3d3c984/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0=
|
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
|
||||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
|
||||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
|
||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
|
||||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
|
||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
|
||||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
|
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
||||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
|
||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
|
||||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
|
||||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
|
||||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
|
||||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
|
||||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
|
||||||
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
|
|
||||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
|
|
||||||
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
|
||||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
|
||||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
|
||||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
|
||||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
|
||||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
|
||||||
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
|
|
||||||
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
|
||||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
|
||||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
|
6
nixpkgs.nix
Normal file
6
nixpkgs.nix
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
let
|
||||||
|
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
|
||||||
|
spec = lock.nodes.nixpkgs.locked;
|
||||||
|
nixpkgs = fetchTarball "https://github.com/${spec.owner}/${spec.repo}/archive/${spec.rev}.tar.gz";
|
||||||
|
in
|
||||||
|
import nixpkgs
|
190
repositories.bzl
190
repositories.bzl
@ -4,192 +4,4 @@
|
|||||||
load("@bazel_gazelle//:deps.bzl", "go_repository")
|
load("@bazel_gazelle//:deps.bzl", "go_repository")
|
||||||
|
|
||||||
def go_repositories():
|
def go_repositories():
|
||||||
go_repository(
|
pass
|
||||||
name = "co_honnef_go_tools",
|
|
||||||
importpath = "honnef.co/go/tools",
|
|
||||||
sum = "h1:/hemPrYIhOhy8zYrNj+069zDB68us2sMGsfkFJO0iZs=",
|
|
||||||
version = "v0.0.0-20190523083050-ea95bdfd59fc",
|
|
||||||
)
|
|
||||||
|
|
||||||
go_repository(
|
|
||||||
name = "com_github_bazelbuild_buildtools",
|
|
||||||
importpath = "github.com/bazelbuild/buildtools",
|
|
||||||
sum = "h1:AfqOWCQPEd/qAi41zI5ovrK0d5oQbXdX+l5VonjZq7A=",
|
|
||||||
version = "v0.0.0-20230302165817-a6ca93fd072d",
|
|
||||||
)
|
|
||||||
|
|
||||||
go_repository(
|
|
||||||
name = "com_github_burntsushi_toml",
|
|
||||||
importpath = "github.com/BurntSushi/toml",
|
|
||||||
sum = "h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=",
|
|
||||||
version = "v0.3.1",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "com_github_census_instrumentation_opencensus_proto",
|
|
||||||
importpath = "github.com/census-instrumentation/opencensus-proto",
|
|
||||||
sum = "h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk=",
|
|
||||||
version = "v0.2.1",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "com_github_chzyer_logex",
|
|
||||||
importpath = "github.com/chzyer/logex",
|
|
||||||
sum = "h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE=",
|
|
||||||
version = "v1.1.10",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "com_github_chzyer_readline",
|
|
||||||
importpath = "github.com/chzyer/readline",
|
|
||||||
sum = "h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8=",
|
|
||||||
version = "v0.0.0-20180603132655-2972be24d48e",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "com_github_chzyer_test",
|
|
||||||
importpath = "github.com/chzyer/test",
|
|
||||||
sum = "h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8=",
|
|
||||||
version = "v0.0.0-20180213035817-a1ea475d72b1",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "com_github_client9_misspell",
|
|
||||||
importpath = "github.com/client9/misspell",
|
|
||||||
sum = "h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI=",
|
|
||||||
version = "v0.3.4",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "com_github_envoyproxy_go_control_plane",
|
|
||||||
importpath = "github.com/envoyproxy/go-control-plane",
|
|
||||||
sum = "h1:4cmBvAEBNJaGARUEs3/suWRyfyBfhf7I60WBZq+bv2w=",
|
|
||||||
version = "v0.9.1-0.20191026205805-5f8ba28d4473",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "com_github_envoyproxy_protoc_gen_validate",
|
|
||||||
importpath = "github.com/envoyproxy/protoc-gen-validate",
|
|
||||||
sum = "h1:EQciDnbrYxy13PgWoY8AqoxGiPrpgBZ1R8UNe3ddc+A=",
|
|
||||||
version = "v0.1.0",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "com_github_golang_glog",
|
|
||||||
importpath = "github.com/golang/glog",
|
|
||||||
sum = "h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=",
|
|
||||||
version = "v0.0.0-20160126235308-23def4e6c14b",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "com_github_golang_mock",
|
|
||||||
importpath = "github.com/golang/mock",
|
|
||||||
sum = "h1:G5FRp8JnTd7RQH5kemVNlMeyXQAztQ3mOWV95KxsXH8=",
|
|
||||||
version = "v1.1.1",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "com_github_golang_protobuf",
|
|
||||||
importpath = "github.com/golang/protobuf",
|
|
||||||
sum = "h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=",
|
|
||||||
version = "v1.5.2",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "com_github_google_go_cmp",
|
|
||||||
importpath = "github.com/google/go-cmp",
|
|
||||||
sum = "h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=",
|
|
||||||
version = "v0.5.5",
|
|
||||||
)
|
|
||||||
|
|
||||||
go_repository(
|
|
||||||
name = "com_github_prometheus_client_model",
|
|
||||||
importpath = "github.com/prometheus/client_model",
|
|
||||||
sum = "h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM=",
|
|
||||||
version = "v0.0.0-20190812154241-14fe0d1b01d4",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "com_google_cloud_go",
|
|
||||||
importpath = "cloud.google.com/go",
|
|
||||||
sum = "h1:e0WKqKTd5BnrG8aKH3J3h+QvEIQtSUcf2n5UZ5ZgLtQ=",
|
|
||||||
version = "v0.26.0",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "net_starlark_go",
|
|
||||||
importpath = "go.starlark.net",
|
|
||||||
sum = "h1:xwwDQW5We85NaTk2APgoN9202w/l0DVGp+GZMfsrh7s=",
|
|
||||||
version = "v0.0.0-20210223155950-e043a3d3c984",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "org_golang_google_appengine",
|
|
||||||
importpath = "google.golang.org/appengine",
|
|
||||||
sum = "h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508=",
|
|
||||||
version = "v1.4.0",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "org_golang_google_genproto",
|
|
||||||
importpath = "google.golang.org/genproto",
|
|
||||||
sum = "h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY=",
|
|
||||||
version = "v0.0.0-20200526211855-cb27e3aa2013",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "org_golang_google_grpc",
|
|
||||||
importpath = "google.golang.org/grpc",
|
|
||||||
sum = "h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg=",
|
|
||||||
version = "v1.27.0",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "org_golang_google_protobuf",
|
|
||||||
importpath = "google.golang.org/protobuf",
|
|
||||||
sum = "h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=",
|
|
||||||
version = "v1.28.1",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "org_golang_x_crypto",
|
|
||||||
importpath = "golang.org/x/crypto",
|
|
||||||
sum = "h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=",
|
|
||||||
version = "v0.0.0-20190308221718-c2843e01d9a2",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "org_golang_x_exp",
|
|
||||||
importpath = "golang.org/x/exp",
|
|
||||||
sum = "h1:c2HOrn5iMezYjSlGPncknSEr/8x5LELb/ilJbXi9DEA=",
|
|
||||||
version = "v0.0.0-20190121172915-509febef88a4",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "org_golang_x_lint",
|
|
||||||
importpath = "golang.org/x/lint",
|
|
||||||
sum = "h1:XQyxROzUlZH+WIQwySDgnISgOivlhjIEwaQaJEJrrN0=",
|
|
||||||
version = "v0.0.0-20190313153728-d0100b6bd8b3",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "org_golang_x_net",
|
|
||||||
importpath = "golang.org/x/net",
|
|
||||||
sum = "h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628=",
|
|
||||||
version = "v0.0.0-20190311183353-d8887717615a",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "org_golang_x_oauth2",
|
|
||||||
importpath = "golang.org/x/oauth2",
|
|
||||||
sum = "h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs=",
|
|
||||||
version = "v0.0.0-20180821212333-d2e6202438be",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "org_golang_x_sync",
|
|
||||||
importpath = "golang.org/x/sync",
|
|
||||||
sum = "h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=",
|
|
||||||
version = "v0.0.0-20190423024810-112230192c58",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "org_golang_x_sys",
|
|
||||||
importpath = "golang.org/x/sys",
|
|
||||||
sum = "h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=",
|
|
||||||
version = "v0.0.0-20200930185726-fdedc70b468f",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "org_golang_x_text",
|
|
||||||
importpath = "golang.org/x/text",
|
|
||||||
sum = "h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=",
|
|
||||||
version = "v0.3.0",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "org_golang_x_tools",
|
|
||||||
importpath = "golang.org/x/tools",
|
|
||||||
sum = "h1:5Beo0mZN8dRzgrMMkDp0jc8YXQKx9DiJ2k1dkvGsn5A=",
|
|
||||||
version = "v0.0.0-20190524140312-2c0ae7006135",
|
|
||||||
)
|
|
||||||
go_repository(
|
|
||||||
name = "org_golang_x_xerrors",
|
|
||||||
importpath = "golang.org/x/xerrors",
|
|
||||||
sum = "h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=",
|
|
||||||
version = "v0.0.0-20200804184101-5ec99f83aff1",
|
|
||||||
)
|
|
||||||
|
5
tools.go
5
tools.go
@ -1,5 +0,0 @@
|
|||||||
package bazel_zig_cc
|
|
||||||
|
|
||||||
import (
|
|
||||||
_ "github.com/bazelbuild/buildtools/buildifier"
|
|
||||||
)
|
|
493
tools/bazel
493
tools/bazel
@ -1,493 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
"""
|
|
||||||
Copyright 2018 Google Inc. All rights reserved.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
"""
|
|
||||||
# Origin: https://github.com/bazelbuild/bazelisk/blob/fc3e3d68c42744dc1c01739f9710cc52f4a8258c/bazelisk.py
|
|
||||||
|
|
||||||
import base64
|
|
||||||
from contextlib import closing
|
|
||||||
import hashlib
|
|
||||||
import json
|
|
||||||
import netrc
|
|
||||||
import os
|
|
||||||
import os.path
|
|
||||||
import platform
|
|
||||||
import re
|
|
||||||
import shutil
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
import tempfile
|
|
||||||
import time
|
|
||||||
|
|
||||||
try:
|
|
||||||
from urllib.parse import urlparse
|
|
||||||
from urllib.request import urlopen, Request
|
|
||||||
from urllib.error import HTTPError
|
|
||||||
except ImportError:
|
|
||||||
# Python 2.x compatibility hack.
|
|
||||||
# http://python-future.org/compatible_idioms.html?highlight=urllib#urllib-module
|
|
||||||
from urlparse import urlparse
|
|
||||||
from urllib2 import urlopen, Request, HTTPError
|
|
||||||
|
|
||||||
FileNotFoundError = IOError
|
|
||||||
|
|
||||||
ONE_HOUR = 1 * 60 * 60
|
|
||||||
|
|
||||||
LATEST_PATTERN = re.compile(r"latest(-(?P<offset>\d+))?$")
|
|
||||||
|
|
||||||
LAST_GREEN_COMMIT_BASE_PATH = (
|
|
||||||
"https://storage.googleapis.com/bazel-untrusted-builds/last_green_commit/"
|
|
||||||
)
|
|
||||||
|
|
||||||
LAST_GREEN_COMMIT_PATH_SUFFIXES = {
|
|
||||||
"last_green": "github.com/bazelbuild/bazel.git/bazel-bazel",
|
|
||||||
"last_downstream_green": "downstream_pipeline",
|
|
||||||
}
|
|
||||||
|
|
||||||
BAZEL_GCS_PATH_PATTERN = (
|
|
||||||
"https://storage.googleapis.com/bazel-builds/artifacts/{platform}/{commit}/bazel"
|
|
||||||
)
|
|
||||||
|
|
||||||
SUPPORTED_PLATFORMS = {"linux": "ubuntu1404", "windows": "windows", "darwin": "macos"}
|
|
||||||
|
|
||||||
TOOLS_BAZEL_PATH = "./tools/bazel"
|
|
||||||
|
|
||||||
BAZEL_REAL = "BAZEL_REAL"
|
|
||||||
|
|
||||||
BAZEL_UPSTREAM = "bazelbuild"
|
|
||||||
|
|
||||||
|
|
||||||
def decide_which_bazel_version_to_use():
|
|
||||||
# Check in this order:
|
|
||||||
# - env var "USE_BAZEL_VERSION" is set to a specific version.
|
|
||||||
# - env var "USE_NIGHTLY_BAZEL" or "USE_BAZEL_NIGHTLY" is set -> latest
|
|
||||||
# nightly. (TODO)
|
|
||||||
# - env var "USE_CANARY_BAZEL" or "USE_BAZEL_CANARY" is set -> latest
|
|
||||||
# rc. (TODO)
|
|
||||||
# - the file workspace_root/tools/bazel exists -> that version. (TODO)
|
|
||||||
# - workspace_root/.bazelversion exists -> read contents, that version.
|
|
||||||
# - workspace_root/WORKSPACE contains a version -> that version. (TODO)
|
|
||||||
# - fallback: latest release
|
|
||||||
if "USE_BAZEL_VERSION" in os.environ:
|
|
||||||
return os.environ["USE_BAZEL_VERSION"]
|
|
||||||
|
|
||||||
workspace_root = find_workspace_root()
|
|
||||||
if workspace_root:
|
|
||||||
bazelversion_path = os.path.join(workspace_root, ".bazelversion")
|
|
||||||
if os.path.exists(bazelversion_path):
|
|
||||||
with open(bazelversion_path, "r") as f:
|
|
||||||
return f.read().strip()
|
|
||||||
|
|
||||||
return "latest"
|
|
||||||
|
|
||||||
|
|
||||||
def find_workspace_root(root=None):
|
|
||||||
if root is None:
|
|
||||||
root = os.getcwd()
|
|
||||||
if os.path.exists(os.path.join(root, "WORKSPACE")):
|
|
||||||
return root
|
|
||||||
new_root = os.path.dirname(root)
|
|
||||||
return find_workspace_root(new_root) if new_root != root else None
|
|
||||||
|
|
||||||
|
|
||||||
def resolve_version_label_to_number_or_commit(bazelisk_directory, version):
|
|
||||||
"""Resolves the given label to a released version of Bazel or a commit.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
bazelisk_directory: string; path to a directory that can store
|
|
||||||
temporary data for Bazelisk.
|
|
||||||
version: string; the version label that should be resolved.
|
|
||||||
Returns:
|
|
||||||
A (string, bool) tuple that consists of two parts:
|
|
||||||
1. the resolved number of a Bazel release (candidate), or the commit
|
|
||||||
of an unreleased Bazel binary,
|
|
||||||
2. An indicator for whether the returned version refers to a commit.
|
|
||||||
"""
|
|
||||||
suffix = LAST_GREEN_COMMIT_PATH_SUFFIXES.get(version)
|
|
||||||
if suffix:
|
|
||||||
return get_last_green_commit(suffix), True
|
|
||||||
|
|
||||||
if "latest" in version:
|
|
||||||
match = LATEST_PATTERN.match(version)
|
|
||||||
if not match:
|
|
||||||
raise Exception(
|
|
||||||
'Invalid version "{}". In addition to using a version '
|
|
||||||
'number such as "0.20.0", you can use values such as '
|
|
||||||
'"latest" and "latest-N", with N being a non-negative '
|
|
||||||
"integer.".format(version)
|
|
||||||
)
|
|
||||||
|
|
||||||
history = get_version_history(bazelisk_directory)
|
|
||||||
offset = int(match.group("offset") or "0")
|
|
||||||
return resolve_latest_version(history, offset), False
|
|
||||||
|
|
||||||
return version, False
|
|
||||||
|
|
||||||
|
|
||||||
def get_last_green_commit(path_suffix):
|
|
||||||
return read_remote_text_file(LAST_GREEN_COMMIT_BASE_PATH + path_suffix).strip()
|
|
||||||
|
|
||||||
|
|
||||||
def get_releases_json(bazelisk_directory):
|
|
||||||
"""Returns the most recent versions of Bazel, in descending order."""
|
|
||||||
releases = os.path.join(bazelisk_directory, "releases.json")
|
|
||||||
|
|
||||||
# Use a cached version if it's fresh enough.
|
|
||||||
if os.path.exists(releases):
|
|
||||||
if abs(time.time() - os.path.getmtime(releases)) < ONE_HOUR:
|
|
||||||
with open(releases, "rb") as f:
|
|
||||||
try:
|
|
||||||
return json.loads(f.read().decode("utf-8"))
|
|
||||||
except ValueError:
|
|
||||||
print("WARN: Could not parse cached releases.json.")
|
|
||||||
pass
|
|
||||||
|
|
||||||
with open(releases, "wb") as f:
|
|
||||||
body = read_remote_text_file("https://api.github.com/repos/bazelbuild/bazel/releases")
|
|
||||||
f.write(body.encode("utf-8"))
|
|
||||||
return json.loads(body)
|
|
||||||
|
|
||||||
|
|
||||||
def read_remote_text_file(url):
|
|
||||||
with closing(urlopen(url)) as res:
|
|
||||||
body = res.read()
|
|
||||||
try:
|
|
||||||
return body.decode(res.info().get_content_charset("iso-8859-1"))
|
|
||||||
except AttributeError:
|
|
||||||
# Python 2.x compatibility hack
|
|
||||||
return body.decode(res.info().getparam("charset") or "iso-8859-1")
|
|
||||||
|
|
||||||
|
|
||||||
def get_version_history(bazelisk_directory):
|
|
||||||
return sorted(
|
|
||||||
(
|
|
||||||
release["tag_name"]
|
|
||||||
for release in get_releases_json(bazelisk_directory)
|
|
||||||
if not release["prerelease"]
|
|
||||||
),
|
|
||||||
# This only handles versions with numeric components, but that is fine
|
|
||||||
# since prerelease versions have been excluded.
|
|
||||||
key=lambda version: tuple(int(component)
|
|
||||||
for component in version.split('.')),
|
|
||||||
reverse=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def resolve_latest_version(version_history, offset):
|
|
||||||
if offset >= len(version_history):
|
|
||||||
version = "latest-{}".format(offset) if offset else "latest"
|
|
||||||
raise Exception(
|
|
||||||
'Cannot resolve version "{}": There are only {} Bazel '
|
|
||||||
"releases.".format(version, len(version_history))
|
|
||||||
)
|
|
||||||
|
|
||||||
# This only works since we store the history in descending order.
|
|
||||||
return version_history[offset]
|
|
||||||
|
|
||||||
|
|
||||||
def get_operating_system():
|
|
||||||
operating_system = platform.system().lower()
|
|
||||||
if operating_system not in ("linux", "darwin", "windows"):
|
|
||||||
raise Exception(
|
|
||||||
'Unsupported operating system "{}". '
|
|
||||||
"Bazel currently only supports Linux, macOS and Windows.".format(operating_system)
|
|
||||||
)
|
|
||||||
return operating_system
|
|
||||||
|
|
||||||
|
|
||||||
def determine_executable_filename_suffix():
|
|
||||||
operating_system = get_operating_system()
|
|
||||||
return ".exe" if operating_system == "windows" else ""
|
|
||||||
|
|
||||||
|
|
||||||
def determine_bazel_filename(version):
|
|
||||||
operating_system = get_operating_system()
|
|
||||||
supported_machines = get_supported_machine_archs(version, operating_system)
|
|
||||||
machine = normalized_machine_arch_name()
|
|
||||||
if machine not in supported_machines:
|
|
||||||
raise Exception(
|
|
||||||
'Unsupported machine architecture "{}". Bazel {} only supports {} on {}.'.format(
|
|
||||||
machine, version, ", ".join(supported_machines), operating_system.capitalize()
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
filename_suffix = determine_executable_filename_suffix()
|
|
||||||
bazel_flavor = "bazel"
|
|
||||||
if os.environ.get("BAZELISK_NOJDK", "0") != "0":
|
|
||||||
bazel_flavor = "bazel_nojdk"
|
|
||||||
return "{}-{}-{}-{}{}".format(bazel_flavor, version, operating_system, machine, filename_suffix)
|
|
||||||
|
|
||||||
|
|
||||||
def get_supported_machine_archs(version, operating_system):
|
|
||||||
supported_machines = ["x86_64"]
|
|
||||||
versions = version.split(".")[:2]
|
|
||||||
if len(versions) == 2:
|
|
||||||
# released version
|
|
||||||
major, minor = int(versions[0]), int(versions[1])
|
|
||||||
if (
|
|
||||||
operating_system == "darwin"
|
|
||||||
and (major > 4 or major == 4 and minor >= 1)
|
|
||||||
or operating_system == "linux"
|
|
||||||
and (major > 3 or major == 3 and minor >= 4)
|
|
||||||
):
|
|
||||||
# Linux arm64 was supported since 3.4.0.
|
|
||||||
# Darwin arm64 was supported since 4.1.0.
|
|
||||||
supported_machines.append("arm64")
|
|
||||||
elif operating_system in ("darwin", "linux"):
|
|
||||||
# This is needed to run bazelisk_test.sh on Linux and Darwin arm64 machines, which are
|
|
||||||
# becoming more and more popular.
|
|
||||||
# It works because all recent commits of Bazel support arm64 on Darwin and Linux.
|
|
||||||
# However, this would add arm64 by mistake if the commit is too old, which should be
|
|
||||||
# a rare scenario.
|
|
||||||
supported_machines.append("arm64")
|
|
||||||
return supported_machines
|
|
||||||
|
|
||||||
|
|
||||||
def normalized_machine_arch_name():
|
|
||||||
machine = platform.machine().lower()
|
|
||||||
if machine == "amd64":
|
|
||||||
machine = "x86_64"
|
|
||||||
elif machine == "aarch64":
|
|
||||||
machine = "arm64"
|
|
||||||
return machine
|
|
||||||
|
|
||||||
|
|
||||||
def determine_url(version, is_commit, bazel_filename):
|
|
||||||
if is_commit:
|
|
||||||
sys.stderr.write("Using unreleased version at commit {}\n".format(version))
|
|
||||||
# No need to validate the platform thanks to determine_bazel_filename().
|
|
||||||
return BAZEL_GCS_PATH_PATTERN.format(
|
|
||||||
platform=SUPPORTED_PLATFORMS[platform.system().lower()], commit=version
|
|
||||||
)
|
|
||||||
|
|
||||||
# Split version into base version and optional additional identifier.
|
|
||||||
# Example: '0.19.1' -> ('0.19.1', None), '0.20.0rc1' -> ('0.20.0', 'rc1')
|
|
||||||
(version, rc) = re.match(r"(\d*\.\d*(?:\.\d*)?)(rc\d+)?", version).groups()
|
|
||||||
|
|
||||||
if "BAZELISK_BASE_URL" in os.environ:
|
|
||||||
return "{}/{}/{}".format(os.environ["BAZELISK_BASE_URL"], version, bazel_filename)
|
|
||||||
else:
|
|
||||||
return "https://releases.bazel.build/{}/{}/{}".format(
|
|
||||||
version, rc if rc else "release", bazel_filename
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def trim_suffix(string, suffix):
|
|
||||||
if string.endswith(suffix):
|
|
||||||
return string[: len(string) - len(suffix)]
|
|
||||||
else:
|
|
||||||
return string
|
|
||||||
|
|
||||||
|
|
||||||
def download_bazel_into_directory(version, is_commit, directory):
|
|
||||||
bazel_filename = determine_bazel_filename(version)
|
|
||||||
bazel_url = determine_url(version, is_commit, bazel_filename)
|
|
||||||
|
|
||||||
filename_suffix = determine_executable_filename_suffix()
|
|
||||||
bazel_directory_name = trim_suffix(bazel_filename, filename_suffix)
|
|
||||||
destination_dir = os.path.join(directory, bazel_directory_name, "bin")
|
|
||||||
maybe_makedirs(destination_dir)
|
|
||||||
|
|
||||||
destination_path = os.path.join(destination_dir, "bazel" + filename_suffix)
|
|
||||||
if not os.path.exists(destination_path):
|
|
||||||
download(bazel_url, destination_path)
|
|
||||||
os.chmod(destination_path, 0o755)
|
|
||||||
|
|
||||||
sha256_path = destination_path + ".sha256"
|
|
||||||
expected_hash = ""
|
|
||||||
if not os.path.exists(sha256_path):
|
|
||||||
try:
|
|
||||||
download(bazel_url + ".sha256", sha256_path)
|
|
||||||
except HTTPError as e:
|
|
||||||
if e.code == 404:
|
|
||||||
sys.stderr.write(
|
|
||||||
"The Bazel mirror does not have a checksum file; skipping checksum verification."
|
|
||||||
)
|
|
||||||
return destination_path
|
|
||||||
raise e
|
|
||||||
with open(sha256_path, "r") as sha_file:
|
|
||||||
expected_hash = sha_file.read().split()[0]
|
|
||||||
sha256_hash = hashlib.sha256()
|
|
||||||
with open(destination_path, "rb") as bazel_file:
|
|
||||||
for byte_block in iter(lambda: bazel_file.read(4096), b""):
|
|
||||||
sha256_hash.update(byte_block)
|
|
||||||
actual_hash = sha256_hash.hexdigest()
|
|
||||||
if actual_hash != expected_hash:
|
|
||||||
os.remove(destination_path)
|
|
||||||
os.remove(sha256_path)
|
|
||||||
print(
|
|
||||||
"The downloaded Bazel binary is corrupted. Expected SHA-256 {}, got {}. Please try again.".format(
|
|
||||||
expected_hash, actual_hash
|
|
||||||
)
|
|
||||||
)
|
|
||||||
# Exiting with a special exit code not used by Bazel, so the calling process may retry based on that.
|
|
||||||
# https://docs.bazel.build/versions/0.21.0/guide.html#what-exit-code-will-i-get
|
|
||||||
sys.exit(22)
|
|
||||||
return destination_path
|
|
||||||
|
|
||||||
|
|
||||||
def download(url, destination_path):
|
|
||||||
sys.stderr.write("Downloading {}...\n".format(url))
|
|
||||||
request = Request(url)
|
|
||||||
if "BAZELISK_BASE_URL" in os.environ:
|
|
||||||
parts = urlparse(url)
|
|
||||||
creds = None
|
|
||||||
try:
|
|
||||||
creds = netrc.netrc().hosts.get(parts.netloc)
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
if creds is not None:
|
|
||||||
auth = base64.b64encode(("%s:%s" % (creds[0], creds[2])).encode("ascii"))
|
|
||||||
request.add_header("Authorization", "Basic %s" % auth.decode("utf-8"))
|
|
||||||
with closing(urlopen(request)) as response, open(destination_path, "wb") as file:
|
|
||||||
shutil.copyfileobj(response, file)
|
|
||||||
|
|
||||||
|
|
||||||
def get_bazelisk_directory():
|
|
||||||
bazelisk_home = os.environ.get("BAZELISK_HOME")
|
|
||||||
if bazelisk_home is not None:
|
|
||||||
return bazelisk_home
|
|
||||||
|
|
||||||
operating_system = get_operating_system()
|
|
||||||
|
|
||||||
base_dir = None
|
|
||||||
|
|
||||||
if operating_system == "windows":
|
|
||||||
base_dir = os.environ.get("LocalAppData")
|
|
||||||
if base_dir is None:
|
|
||||||
raise Exception("%LocalAppData% is not defined")
|
|
||||||
elif operating_system == "darwin":
|
|
||||||
base_dir = os.environ.get("HOME")
|
|
||||||
if base_dir is None:
|
|
||||||
raise Exception("$HOME is not defined")
|
|
||||||
base_dir = os.path.join(base_dir, "Library/Caches")
|
|
||||||
elif operating_system == "linux":
|
|
||||||
base_dir = os.environ.get("XDG_CACHE_HOME")
|
|
||||||
if base_dir is None:
|
|
||||||
base_dir = os.environ.get("HOME")
|
|
||||||
if base_dir is None:
|
|
||||||
raise Exception("neither $XDG_CACHE_HOME nor $HOME are defined")
|
|
||||||
base_dir = os.path.join(base_dir, ".cache")
|
|
||||||
else:
|
|
||||||
raise Exception("Unsupported operating system '{}'".format(operating_system))
|
|
||||||
|
|
||||||
return os.path.join(base_dir, "bazelisk")
|
|
||||||
|
|
||||||
|
|
||||||
def maybe_makedirs(path):
|
|
||||||
"""
|
|
||||||
Creates a directory and its parents if necessary.
|
|
||||||
"""
|
|
||||||
try:
|
|
||||||
os.makedirs(path)
|
|
||||||
except OSError as e:
|
|
||||||
if not os.path.isdir(path):
|
|
||||||
raise e
|
|
||||||
|
|
||||||
|
|
||||||
def delegate_tools_bazel(bazel_path):
|
|
||||||
"""Match Bazel's own delegation behavior in the builds distributed by most
|
|
||||||
package managers: use tools/bazel if it's present, executable, and not this
|
|
||||||
script.
|
|
||||||
"""
|
|
||||||
root = find_workspace_root()
|
|
||||||
if root:
|
|
||||||
wrapper = os.path.join(root, TOOLS_BAZEL_PATH)
|
|
||||||
if os.path.exists(wrapper) and os.access(wrapper, os.X_OK):
|
|
||||||
try:
|
|
||||||
if not os.path.samefile(wrapper, __file__):
|
|
||||||
return wrapper
|
|
||||||
except AttributeError:
|
|
||||||
# Python 2 on Windows does not support os.path.samefile
|
|
||||||
if os.path.abspath(wrapper) != os.path.abspath(__file__):
|
|
||||||
return wrapper
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
def prepend_directory_to_path(env, directory):
|
|
||||||
"""
|
|
||||||
Prepend binary directory to PATH
|
|
||||||
"""
|
|
||||||
if "PATH" in env:
|
|
||||||
env["PATH"] = directory + os.pathsep + env["PATH"]
|
|
||||||
else:
|
|
||||||
env["PATH"] = directory
|
|
||||||
|
|
||||||
|
|
||||||
def make_bazel_cmd(bazel_path, argv):
|
|
||||||
env = os.environ.copy()
|
|
||||||
|
|
||||||
wrapper = delegate_tools_bazel(bazel_path)
|
|
||||||
if wrapper:
|
|
||||||
env[BAZEL_REAL] = bazel_path
|
|
||||||
bazel_path = wrapper
|
|
||||||
|
|
||||||
directory = os.path.dirname(bazel_path)
|
|
||||||
prepend_directory_to_path(env, directory)
|
|
||||||
return {
|
|
||||||
"exec": bazel_path,
|
|
||||||
"args": argv,
|
|
||||||
"env": env,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def execute_bazel(bazel_path, argv):
|
|
||||||
cmd = make_bazel_cmd(bazel_path, argv)
|
|
||||||
|
|
||||||
# We cannot use close_fds on Windows, so disable it there.
|
|
||||||
p = subprocess.Popen([cmd["exec"]] + cmd["args"], close_fds=os.name != "nt", env=cmd["env"])
|
|
||||||
while True:
|
|
||||||
try:
|
|
||||||
return p.wait()
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
# Bazel will also get the signal and terminate.
|
|
||||||
# We should continue waiting until it does so.
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def get_bazel_path():
|
|
||||||
bazelisk_directory = get_bazelisk_directory()
|
|
||||||
maybe_makedirs(bazelisk_directory)
|
|
||||||
|
|
||||||
bazel_version = decide_which_bazel_version_to_use()
|
|
||||||
bazel_version, is_commit = resolve_version_label_to_number_or_commit(
|
|
||||||
bazelisk_directory, bazel_version
|
|
||||||
)
|
|
||||||
|
|
||||||
# TODO: Support other forks just like Go version
|
|
||||||
bazel_directory = os.path.join(bazelisk_directory, "downloads", BAZEL_UPSTREAM)
|
|
||||||
return download_bazel_into_directory(bazel_version, is_commit, bazel_directory)
|
|
||||||
|
|
||||||
|
|
||||||
def main(argv=None):
|
|
||||||
if argv is None:
|
|
||||||
argv = sys.argv
|
|
||||||
|
|
||||||
bazel_path = get_bazel_path()
|
|
||||||
|
|
||||||
argv = argv[1:]
|
|
||||||
|
|
||||||
if argv and argv[0] == "--print_env":
|
|
||||||
cmd = make_bazel_cmd(bazel_path, argv)
|
|
||||||
env = cmd["env"]
|
|
||||||
for key in env:
|
|
||||||
print("{}={}".format(key, env[key]))
|
|
||||||
return 0
|
|
||||||
|
|
||||||
return execute_bazel(bazel_path, argv)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
sys.exit(main())
|
|
@ -1,8 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Copyright 2023 Uber Technologies, Inc.
|
|
||||||
# Licensed under the Apache License, Version 2.0
|
|
||||||
|
|
||||||
set -xeu
|
|
||||||
|
|
||||||
exec "$(git rev-parse --show-toplevel)/tools/bazel" run @com_github_bazelbuild_buildtools//buildifier -- "$@"
|
|
@ -6,7 +6,7 @@ set -xeu
|
|||||||
|
|
||||||
cd "$(git rev-parse --show-toplevel)"
|
cd "$(git rev-parse --show-toplevel)"
|
||||||
echo "--- go mod tidy"
|
echo "--- go mod tidy"
|
||||||
tools/bazel run @go_sdk//:bin/go -- mod tidy "$@"
|
bazel run @go_sdk//:bin/go -- mod tidy "$@"
|
||||||
|
|
||||||
echo "--- gazelle-update-repos"
|
echo "--- gazelle update-repos"
|
||||||
exec tools/bazel run //:gazelle-update-repos
|
exec gazelle update-repos -from_file=go.mod -to_macro=repositories.bzl%go_repositories -prune
|
||||||
|
Loading…
Reference in New Issue
Block a user