2727flag :source_path , "--source-path=PATH" do
2828 desc "Path to the googleapis-gen source repo"
2929end
30- flag :pull do
30+ flag :pull , "--[no-]pull" do
3131 desc "Pull the latest owlbot images before running"
3232end
33- flag :interactive , "--interactive" , "-i" do
33+ flag :interactive , "--[no-] interactive" , "-i" do
3434 desc "Run in interactive mode, including editing of the .owlbot.rb file"
3535end
3636flag :editor do
4343flag :git_remote , "--remote NAME" do
4444 desc "The name of the git remote to use as the pull request head. If omitted, does not open a pull request."
4545end
46- flag :enable_tests , "--test" do
46+ flag :enable_tests , "--[no-] test" do
4747 desc "Run CI on the newly-created library"
4848end
49+ flag :bootstrap_releases , "--[no-]bootstrap-releases" do
50+ desc "Also add release-please configuration for the newly-created library"
51+ end
52+
53+ static :config_name , "release-please-config.json"
54+ static :manifest_name , ".release-please-manifest.json"
4955
5056include :exec , e : true
5157include :fileutils
@@ -64,6 +70,7 @@ def run
6470 write_owlbot_config
6571 write_owlbot_script
6672 call_owlbot
73+ create_release_please_configs if bootstrap_releases
6774 test_library if enable_tests
6875 end
6976end
@@ -118,6 +125,39 @@ def call_owlbot
118125 exec_tool cmd
119126end
120127
128+ def create_release_please_configs
129+ manifest = JSON . parse File . read manifest_name
130+ manifest [ gem_name ] = "0.0.1"
131+ manifest = add_fillers ( manifest ) . sort . to_h
132+ File . write manifest_name , "#{ JSON . pretty_generate manifest } \n "
133+
134+ config = JSON . parse File . read config_name
135+ config [ "packages" ] [ gem_name ] = {
136+ "component" => gem_name ,
137+ "version_file" => gem_version_file
138+ }
139+ config [ "packages" ] = config [ "packages" ] . sort . to_h
140+ File . write config_name , "#{ JSON . pretty_generate config } \n "
141+ end
142+
143+ def gem_version_file
144+ @gem_version_file ||= begin
145+ version_path = gem_name . tr "-" , "/"
146+ version_file = File . join "lib" , version_path , "version.rb"
147+ version_file_full = File . join gem_name , version_file
148+ raise "Unable to find #{ version_file_full } " unless File . file? version_file_full
149+ version_file
150+ end
151+ @gem_version_file
152+ end
153+
154+ def add_fillers manifest
155+ manifest . keys . each do |key |
156+ manifest [ "#{ key } +FILLER" ] = "0.0.0" unless key . end_with? "+FILLER"
157+ end
158+ manifest
159+ end
160+
121161def test_library
122162 Dir . chdir gem_name do
123163 exec [ "bundle" , "install" ]
0 commit comments