forked from googleapis/google-cloud-ruby
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsynth.py
93 lines (81 loc) · 3.08 KB
/
synth.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# Copyright 2018 Google LLC
#
# 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.
"""This script is used to synthesize generated parts of this library."""
import synthtool as s
import synthtool.gcp as gcp
import logging
import os
import re
logging.basicConfig(level=logging.DEBUG)
gapic = gcp.GAPICGenerator()
v1_library = gapic.ruby_library(
'trace', 'v1',
config_path='/google/devtools/cloudtrace/artman_cloudtrace_v1.yaml',
artman_output_name='google-cloud-ruby/google-cloud-trace'
)
s.copy(v1_library / 'lib/google/cloud/trace/v1')
s.copy(v1_library / 'lib/google/devtools/cloudtrace/v1')
v2_library = gapic.ruby_library(
'trace', 'v2',
config_path='/google/devtools/cloudtrace/artman_cloudtrace_v2.yaml',
artman_output_name='google-cloud-ruby/google-cloud-trace'
)
s.copy(v2_library / 'lib/google/cloud/trace/v2')
s.copy(v2_library / 'lib/google/devtools/cloudtrace/v2')
# Omitting lib/google/cloud/trace/v{1,2}.rb for now because we are not exposing
# the low-level API.
# PERMANENT: We don't want the generated overview.rb files because we have our
# own toplevel docs for the handwritten layer.
os.remove('lib/google/cloud/trace/v1/doc/overview.rb')
os.remove('lib/google/cloud/trace/v2/doc/overview.rb')
# https://github.com/googleapis/gapic-generator/issues/2124
s.replace(
[
'lib/google/cloud/trace/v1/credentials.rb',
'lib/google/cloud/trace/v2/credentials.rb'
],
'SCOPE = \[[^\]]+\]\.freeze',
'SCOPE = ["https://www.googleapis.com/auth/cloud-platform"].freeze')
# TEMPORARY: Get rid of devsite markup
s.replace(
[
'lib/google/cloud/trace/v1/doc/google/devtools/cloudtrace/v1/trace.rb',
'lib/google/cloud/trace/v2/doc/google/devtools/cloudtrace/v2/trace.rb',
'lib/google/cloud/trace/v2/trace_service_client.rb'
],
'\\{% dynamic print site_values.console_name %\\}',
'Google Cloud Platform Console')
# https://github.com/googleapis/gapic-generator/issues/2242
def escape_braces(match):
expr = re.compile('([^\n#\\$\\\\])\\{([\\w,]+|\\.+)\\}')
content = match.group(0)
while True:
content, count = expr.subn('\\1\\\\\\\\{\\2}', content)
if count == 0:
return content
s.replace(
[
'lib/google/cloud/trace/v1/**/*.rb',
'lib/google/cloud/trace/v2/**/*.rb'
],
'\n(\\s+)#[^\n]*[^\n#\\$\\\\]\\{[\\w,]+\\}',
escape_braces)
# https://github.com/googleapis/gapic-generator/issues/2243
s.replace(
[
'lib/google/cloud/trace/v1/*_client.rb',
'lib/google/cloud/trace/v2/*_client.rb'
],
'(\n\\s+class \\w+Client\n)(\\s+)(attr_reader :\\w+_stub)',
'\\1\\2# @private\n\\2\\3')