forked from googleapis/google-cloud-ruby
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsynth.py
104 lines (91 loc) · 3.56 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
94
95
96
97
98
99
100
101
102
103
104
# 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 synthtool.languages.ruby as ruby
import logging
import re
logging.basicConfig(level=logging.DEBUG)
gapic = gcp.GAPICGenerator()
v2beta2_library = gapic.ruby_library(
'tasks', 'v2beta2', artman_output_name='google-cloud-ruby/google-cloud-tasks',
config_path='artman_cloudtasks_v2beta2.yaml'
)
s.copy(v2beta2_library / 'lib/google/cloud/tasks/v2beta2')
s.copy(v2beta2_library / 'lib/google/cloud/tasks/v2beta2.rb')
s.copy(v2beta2_library / 'test/google/cloud/tasks/v2beta2')
v2beta3_library = gapic.ruby_library(
'tasks', 'v2beta3', artman_output_name='google-cloud-ruby/google-cloud-tasks',
config_path='artman_cloudtasks_v2beta3.yaml'
)
s.copy(v2beta3_library / 'lib/google/cloud/tasks.rb')
s.copy(v2beta3_library / 'lib/google/cloud/tasks/v2beta3')
s.copy(v2beta3_library / 'lib/google/cloud/tasks/v2beta3.rb')
s.copy(v2beta3_library / 'test/google/cloud/tasks/v2beta3')
s.copy(v2beta3_library / 'README.md')
s.copy(v2beta3_library / 'LICENSE')
s.copy(v2beta3_library / '.gitignore')
s.copy(v2beta3_library / '.yardopts')
s.copy(v2beta3_library / 'google-cloud-tasks.gemspec', merge=ruby.merge_gemspec)
# https://github.com/googleapis/gapic-generator/issues/2180
s.replace(
'google-cloud-tasks.gemspec',
'\n gem\\.add_dependency "google-gax", "~> ([\\d\\.]+)"\n\n',
'\n gem.add_dependency "google-gax", "~> \\1"\n gem.add_dependency "grpc-google-iam-v1", "~> 0.6.9"\n\n')
# https://github.com/googleapis/gapic-generator/issues/2242
def escape_braces(match):
expr = re.compile('^([^`]*(`[^`]*`[^`]*)*)([^`#\\$\\\\])\\{([\\w,]+)\\}')
content = match.group(0)
while True:
content, count = expr.subn('\\1\\3\\\\\\\\{\\4}', content)
if count == 0:
return content
s.replace(
'lib/google/cloud/**/*.rb',
'\n(\\s+)#[^\n]*[^\n#\\$\\\\]\\{[\\w,]+\\}',
escape_braces)
# https://github.com/googleapis/gapic-generator/issues/2243
s.replace(
'lib/google/cloud/tasks/*/*_client.rb',
'(\n\\s+class \\w+Client\n)(\\s+)(attr_reader :\\w+_stub)',
'\\1\\2# @private\n\\2\\3')
# https://github.com/googleapis/gapic-generator/issues/2279
s.replace(
'lib/**/*.rb',
'\\A(((#[^\n]*)?\n)*# (Copyright \\d+|Generated by the protocol buffer compiler)[^\n]+\n(#[^\n]*\n)*\n)([^\n])',
'\\1\n\\6')
# https://github.com/googleapis/gapic-generator/issues/2323
s.replace(
[
'lib/**/*.rb',
'README.md'
],
'https://github\\.com/GoogleCloudPlatform/google-cloud-ruby',
'https://github.com/googleapis/google-cloud-ruby'
)
s.replace(
[
'lib/**/*.rb',
'README.md'
],
'https://googlecloudplatform\\.github\\.io/google-cloud-ruby',
'https://googleapis.github.io/google-cloud-ruby'
)
# https://github.com/googleapis/gapic-generator/issues/2393
s.replace(
'google-cloud-tasks.gemspec',
'gem.add_development_dependency "rubocop".*$',
'gem.add_development_dependency "rubocop", "~> 0.64.0"'
)