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