blob: 7189d438b0ec58aa1b58f1de008d08c6b3d13c3d [file] [log] [blame]
Philipp Schrader37fdbb62021-12-18 00:30:37 -08001"""Tweaks the gazelle-generated go_deps.bzl to work with our mirrors.
2
3This script changes all invocations of go_repository() in go_deps.bzl to use
4maybe_override_go_dep(). That lets us more easily switch between upstream
5sources and our mirrored versions of the code.
6
7The motivation is to let folks use upstream sources during local development.
8For CI runs, however, we have to restrict ourselves to mirrored dependencies.
9"""
10
11import argparse
12import sys
13import textwrap
14
15import tools.go.mirror_lib
16
17def main(argv):
18 parser = argparse.ArgumentParser()
19 parser.add_argument("go_deps_bzl", type=str)
20 args = parser.parse_args(argv[1:])
21
22 repos = tools.go.mirror_lib.parse_go_repositories(args.go_deps_bzl)
23
24 with open(args.go_deps_bzl, "w") as file:
25 file.write(textwrap.dedent("""\
26 # This file is auto-generated. Do not edit.
27 load("//tools/go:mirrored_go_deps.bzl", "maybe_override_go_dep")
28
29 def go_dependencies():
30 """))
31 for repo in repos:
32 file.write(textwrap.indent(textwrap.dedent(f"""\
33 maybe_override_go_dep(
34 name = "{repo['name']}",
35 importpath = "{repo['importpath']}",
36 sum = "{repo['sum']}",
37 version = "{repo['version']}",
38 )
39 """), " " * 4))
40
41if __name__ == "__main__":
42 sys.exit(main(sys.argv))