class CORL::Builder::Project

Public Instance Methods

build_provider(provider_path, project_reference, environment, options = {}) click to toggle source
   # File lib/CORL/builder/project.rb
 9 def build_provider(provider_path, project_reference, environment, options = {})
10   config  = Config.ensure(options)
11   path    = provider_path.to_s
12   success = true
13 
14   info("Building project #{purple(project_reference)} into #{green(path)}", { :i18n => false })
15 
16   full_directory = File.join(network.directory, path)
17   FileUtils.rm_rf(full_directory) if config.get(:clean, false)
18 
19   project = build_config.manage(:project, extended_config(:project, {
20     :directory     => full_directory,
21     :url           => project_reference,
22     :create        => File.directory?(full_directory) ? false : true,
23     :pull          => true,
24     :internal_ip   => CORL.public_ip, # Needed for seeding Vagrant VMs
25     :manage_ignore => false,
26     :nucleon_file  => false
27   }))
28   unless project
29     warn("Project #{cyan(path)} failed to initialize", { :i18n => false })
30     success = false
31   end
32   if success
33     #success("Build of project #{blue(path)} finished", { :i18n => false })
34     network.ignore(path)
35   end
36   success
37 end