Class: Buildserver::Buildserver
- Inherits:
-
Object
- Object
- Buildserver::Buildserver
- Defined in:
- lib/buildserver.rb
Instance Method Summary collapse
- #add_build_block(for_role, build_block) ⇒ Object
- #add_instance(hostname, role, ip_address) ⇒ Object
- #build! ⇒ Object
-
#initialize(config = {}) ⇒ Buildserver
constructor
A new instance of Buildserver.
Constructor Details
#initialize(config = {}) ⇒ Buildserver
Returns a new instance of Buildserver.
10 11 12 13 14 |
# File 'lib/buildserver.rb', line 10 def initialize(config = {}) @instances = [] @config = config end |
Instance Method Details
#add_build_block(for_role, build_block) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/buildserver.rb', line 20 def add_build_block(for_role, build_block) if for_role == :base instances = @instances else instances = @instances.select{|instance| instance.has_role?(for_role.to_s)} end instances.each do |instance| instance.add_build_block(build_block) end end |
#add_instance(hostname, role, ip_address) ⇒ Object
16 17 18 |
# File 'lib/buildserver.rb', line 16 def add_instance(hostname, role, ip_address) @instances << Instance.new(hostname, role, ip_address) end |
#build! ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/buildserver.rb', line 32 def build! FileUtils.mkdir_p("builds") FileUtils.rm( Dir.glob("builds/*") ) @instances.each do |instance| puts "Writing to builds/#{instance.hostname}.sh..." commands = instance.build(@config, @instances - [instance]) file = File.new("builds/#{instance.hostname}.sh", "w") commands.each do |command| file.puts(command) end file.close end end |