summaryrefslogtreecommitdiff
path: root/tool/sync_default_gems.rb
diff options
context:
space:
mode:
authorHiroshi SHIBATA <hsbt@ruby-lang.org>2022-03-08 21:08:46 +0900
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2022-03-08 21:08:46 +0900
commit1adc7aa630d43e04cf5e75bbbbcf48b72a6e6c45 (patch)
tree7595c1cac242fa9708a1d7218fb5d1004581f363 /tool/sync_default_gems.rb
parentbfc697f1e26f1406c45ec7309ca0d4c0b5ecedd6 (diff)
Added release option to sync only released version of the default gems
Diffstat (limited to 'tool/sync_default_gems.rb')
-rwxr-xr-xtool/sync_default_gems.rb23
1 files changed, 18 insertions, 5 deletions
diff --git a/tool/sync_default_gems.rb b/tool/sync_default_gems.rb
index ca5283d2c3..fe7510c1aa 100755
--- a/tool/sync_default_gems.rb
+++ b/tool/sync_default_gems.rb
@@ -530,7 +530,7 @@ def sync_lib(repo, upstream = nil)
cp_r("#{upstream}/#{repo}.gemspec", "#{gemspec}")
end
-def update_default_gems(gem)
+def update_default_gems(gem, release: false)
author, repository = REPOSITORIES[gem.to_sym].split('/')
@@ -552,9 +552,15 @@ def update_default_gems(gem)
end
`git checkout ruby-core`
`git rebase ruby-core/master`
- `git checkout master`
- `git fetch origin master`
- `git rebase origin/master`
+ `git fetch origin --tags`
+
+ if release
+ last_release = `git tag`.chomp.split.last
+ `git checkout #{last_release}`
+ else
+ `git checkout master`
+ `git rebase origin/master`
+ end
end
end
@@ -566,7 +572,14 @@ when "up"
REPOSITORIES.keys.each{|gem| update_default_gems(gem.to_s)}
end
when "all"
- REPOSITORIES.keys.each{|gem| sync_default_gems(gem.to_s)}
+ if ARGV[1] == "release"
+ REPOSITORIES.keys.each do |gem|
+ update_default_gems(gem.to_s, release: true)
+ sync_default_gems(gem.to_s)
+ end
+ else
+ REPOSITORIES.keys.each{|gem| sync_default_gems(gem.to_s)}
+ end
when "list"
ARGV.shift
pattern = Regexp.new(ARGV.join('|'))