mirror of
https://github.com/elastic/logstash.git
synced 2025-04-24 14:47:19 -04:00
added way to add development dependencies to a gemfile and then rerun it
Fixes #2371
This commit is contained in:
parent
b680921dae
commit
6e63f6c6b2
2 changed files with 27 additions and 1 deletions
|
@ -23,7 +23,7 @@ namespace "plugin" do
|
|||
|
||||
task "install-all" => [ "dependency:octokit" ] do
|
||||
Rake::Task["vendor:bundle"].invoke("tools/Gemfile.plugins.all")
|
||||
Rake::Task["vendor:deps"].invoke("tools/Gemfile.plugins.all")
|
||||
end
|
||||
|
||||
|
||||
end # namespace "plugin"
|
||||
|
|
|
@ -124,6 +124,32 @@ namespace "vendor" do
|
|||
end # task gems
|
||||
task "all" => "gems"
|
||||
|
||||
task "deps", [:gemfile] => [ "dependency:bundler" ] do |task, args|
|
||||
dependencies = {}
|
||||
# grab the development dependencies
|
||||
Dir.glob("vendor/bundle/jruby/*/gems/logstash-*/*.gemspec") do |gemspec|
|
||||
spec = Gem::Specification.load(gemspec)
|
||||
spec.development_dependencies.each do |dependency|
|
||||
dependencies[dependency.name] = dependency
|
||||
end
|
||||
end
|
||||
deps_gemfile = args[:gemfile]
|
||||
temp_data = File.read(deps_gemfile)
|
||||
# generate the gemfile.
|
||||
File.open(deps_gemfile, "a") do |file|
|
||||
dependencies.values.each do |dependency|
|
||||
next if dependency.name.start_with?('logstash-')
|
||||
requirements = dependency.requirement.to_s.split(',').map { |s| "'#{s.strip}'" }.join(',')
|
||||
s = "gem '#{dependency.name}', #{requirements}"
|
||||
file.puts s
|
||||
end
|
||||
end
|
||||
# run bundle install with this new gemfile
|
||||
Rake::Task["vendor:bundle"].invoke(deps_gemfile)
|
||||
FileUtils.rm(deps_gemfile)
|
||||
File.write(deps_gemfile, temp_data)
|
||||
end
|
||||
|
||||
task "bundle", [:gemfile] => [ "dependency:bundler" ] do |task, args|
|
||||
task.reenable
|
||||
# because --path creates a .bundle/config file and changes bundler path
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue