xref: /aosp_15_r20/external/grpc-grpc-java/xds/third_party/envoy/import.sh (revision e07d83d3ffcef9ecfc9f7f475418ec639ff0e5fe)
1#!/bin/bash
2# Copyright 2018 The gRPC Authors
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#     http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16# Update VERSION then in this directory run ./import.sh
17
18set -e
19BRANCH=main
20# import VERSION from the google internal copybara_version.txt for Envoy
21VERSION=0478eba2a495027bf6ac8e787c42e2f5b9eb553b
22GIT_REPO="https://github.com/envoyproxy/envoy.git"
23GIT_BASE_DIR=envoy
24SOURCE_PROTO_BASE_DIR=envoy/api
25TARGET_PROTO_BASE_DIR=src/main/proto
26# Sorted alphabetically.
27FILES=(
28envoy/admin/v3/config_dump.proto
29envoy/admin/v3/config_dump_shared.proto
30envoy/annotations/deprecation.proto
31envoy/annotations/resource.proto
32envoy/api/v2/auth/cert.proto
33envoy/api/v2/auth/common.proto
34envoy/api/v2/auth/secret.proto
35envoy/api/v2/auth/tls.proto
36envoy/api/v2/cds.proto
37envoy/api/v2/cluster.proto
38envoy/api/v2/cluster/circuit_breaker.proto
39envoy/api/v2/cluster/filter.proto
40envoy/api/v2/cluster/outlier_detection.proto
41envoy/api/v2/core/address.proto
42envoy/api/v2/core/backoff.proto
43envoy/api/v2/core/base.proto
44envoy/api/v2/core/config_source.proto
45envoy/api/v2/core/event_service_config.proto
46envoy/api/v2/core/grpc_service.proto
47envoy/api/v2/core/health_check.proto
48envoy/api/v2/core/http_uri.proto
49envoy/api/v2/core/protocol.proto
50envoy/api/v2/core/socket_option.proto
51envoy/api/v2/discovery.proto
52envoy/api/v2/eds.proto
53envoy/api/v2/endpoint.proto
54envoy/api/v2/endpoint/endpoint.proto
55envoy/api/v2/endpoint/endpoint_components.proto
56envoy/api/v2/endpoint/load_report.proto
57envoy/api/v2/lds.proto
58envoy/api/v2/listener.proto
59envoy/api/v2/listener/listener.proto
60envoy/api/v2/listener/listener_components.proto
61envoy/api/v2/listener/udp_listener_config.proto
62envoy/api/v2/rds.proto
63envoy/api/v2/route.proto
64envoy/api/v2/route/route.proto
65envoy/api/v2/route/route_components.proto
66envoy/api/v2/scoped_route.proto
67envoy/api/v2/srds.proto
68envoy/config/accesslog/v3/accesslog.proto
69envoy/config/bootstrap/v3/bootstrap.proto
70envoy/config/cluster/aggregate/v2alpha/cluster.proto
71envoy/config/cluster/v3/circuit_breaker.proto
72envoy/config/cluster/v3/cluster.proto
73envoy/config/cluster/v3/filter.proto
74envoy/config/cluster/v3/outlier_detection.proto
75envoy/config/core/v3/address.proto
76envoy/config/core/v3/backoff.proto
77envoy/config/core/v3/base.proto
78envoy/config/core/v3/config_source.proto
79envoy/config/core/v3/event_service_config.proto
80envoy/config/core/v3/extension.proto
81envoy/config/core/v3/grpc_service.proto
82envoy/config/core/v3/health_check.proto
83envoy/config/core/v3/http_uri.proto
84envoy/config/core/v3/protocol.proto
85envoy/config/core/v3/proxy_protocol.proto
86envoy/config/core/v3/resolver.proto
87envoy/config/core/v3/socket_option.proto
88envoy/config/core/v3/substitution_format_string.proto
89envoy/config/core/v3/udp_socket_config.proto
90envoy/config/endpoint/v3/endpoint.proto
91envoy/config/endpoint/v3/endpoint_components.proto
92envoy/config/endpoint/v3/load_report.proto
93envoy/config/filter/accesslog/v2/accesslog.proto
94envoy/config/filter/fault/v2/fault.proto
95envoy/config/filter/http/fault/v2/fault.proto
96envoy/config/filter/http/router/v2/router.proto
97envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto
98envoy/config/listener/v2/api_listener.proto
99envoy/config/listener/v3/api_listener.proto
100envoy/config/listener/v3/listener.proto
101envoy/config/listener/v3/listener_components.proto
102envoy/config/listener/v3/quic_config.proto
103envoy/config/listener/v3/udp_listener_config.proto
104envoy/config/metrics/v3/stats.proto
105envoy/config/overload/v3/overload.proto
106envoy/config/rbac/v2/rbac.proto
107envoy/config/rbac/v3/rbac.proto
108envoy/config/route/v3/route.proto
109envoy/config/route/v3/route_components.proto
110envoy/config/route/v3/scoped_route.proto
111envoy/config/trace/v2/datadog.proto
112envoy/config/trace/v2/dynamic_ot.proto
113envoy/config/trace/v2/http_tracer.proto
114envoy/config/trace/v2/lightstep.proto
115envoy/config/trace/v2/opencensus.proto
116envoy/config/trace/v2/service.proto
117envoy/config/trace/v2/trace.proto
118envoy/config/trace/v2/zipkin.proto
119envoy/config/trace/v3/datadog.proto
120envoy/config/trace/v3/dynamic_ot.proto
121envoy/config/trace/v3/http_tracer.proto
122envoy/config/trace/v3/lightstep.proto
123envoy/config/trace/v3/opencensus.proto
124envoy/config/trace/v3/opentelemetry.proto
125envoy/config/trace/v3/service.proto
126envoy/config/trace/v3/trace.proto
127envoy/config/trace/v3/zipkin.proto
128envoy/extensions/clusters/aggregate/v3/cluster.proto
129envoy/extensions/filters/common/fault/v3/fault.proto
130envoy/extensions/filters/http/fault/v3/fault.proto
131envoy/extensions/filters/http/rbac/v3/rbac.proto
132envoy/extensions/filters/http/router/v3/router.proto
133envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto
134envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.proto
135envoy/extensions/load_balancing_policies/common/v3/common.proto
136envoy/extensions/load_balancing_policies/least_request/v3/least_request.proto
137envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.proto
138envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.proto
139envoy/extensions/load_balancing_policies/round_robin/v3/round_robin.proto
140envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.proto
141envoy/extensions/transport_sockets/tls/v3/cert.proto
142envoy/extensions/transport_sockets/tls/v3/common.proto
143envoy/extensions/transport_sockets/tls/v3/secret.proto
144envoy/extensions/transport_sockets/tls/v3/tls.proto
145envoy/service/discovery/v2/ads.proto
146envoy/service/discovery/v2/sds.proto
147envoy/service/discovery/v3/ads.proto
148envoy/service/discovery/v3/discovery.proto
149envoy/service/load_stats/v2/lrs.proto
150envoy/service/load_stats/v3/lrs.proto
151envoy/service/status/v3/csds.proto
152envoy/type/http.proto
153envoy/type/http/v3/path_transformation.proto
154envoy/type/matcher/metadata.proto
155envoy/type/matcher/number.proto
156envoy/type/matcher/path.proto
157envoy/type/matcher/regex.proto
158envoy/type/matcher/string.proto
159envoy/type/matcher/v3/filter_state.proto
160envoy/type/matcher/v3/metadata.proto
161envoy/type/matcher/v3/node.proto
162envoy/type/matcher/v3/number.proto
163envoy/type/matcher/v3/path.proto
164envoy/type/matcher/v3/regex.proto
165envoy/type/matcher/v3/string.proto
166envoy/type/matcher/v3/struct.proto
167envoy/type/matcher/v3/value.proto
168envoy/type/matcher/value.proto
169envoy/type/metadata/v2/metadata.proto
170envoy/type/metadata/v3/metadata.proto
171envoy/type/percent.proto
172envoy/type/range.proto
173envoy/type/semantic_version.proto
174envoy/type/tracing/v2/custom_tag.proto
175envoy/type/tracing/v3/custom_tag.proto
176envoy/type/v3/http.proto
177envoy/type/v3/percent.proto
178envoy/type/v3/range.proto
179envoy/type/v3/semantic_version.proto
180)
181
182pushd `git rev-parse --show-toplevel`/xds/third_party/envoy
183
184# clone the envoy github repo in a tmp directory
185tmpdir="$(mktemp -d)"
186trap "rm -rf ${tmpdir}" EXIT
187
188pushd "${tmpdir}"
189git clone -b $BRANCH $GIT_REPO
190trap "rm -rf $GIT_BASE_DIR" EXIT
191cd "$GIT_BASE_DIR"
192git checkout $VERSION
193popd
194
195cp -p "${tmpdir}/${GIT_BASE_DIR}/LICENSE" LICENSE
196cp -p "${tmpdir}/${GIT_BASE_DIR}/NOTICE" NOTICE
197
198rm -rf "${TARGET_PROTO_BASE_DIR}"
199mkdir -p "${TARGET_PROTO_BASE_DIR}"
200pushd "${TARGET_PROTO_BASE_DIR}"
201
202# copy proto files to project directory
203for file in "${FILES[@]}"
204do
205  mkdir -p "$(dirname "${file}")"
206  cp -p "${tmpdir}/${SOURCE_PROTO_BASE_DIR}/${file}" "${file}"
207done
208popd
209
210popd
211