class Nucleon::Action::Network::Vagrantfile

Public Class Methods

describe() click to toggle source
Calls superclass method
   # File lib/nucleon/action/network/vagrantfile.rb
10 def self.describe
11   super(:network, :vagrantfile, 800)
12 end

Public Instance Methods

configure() click to toggle source
Calls superclass method
   # File lib/nucleon/action/network/vagrantfile.rb
17 def configure
18   super do
19     codes :vagrant_backup_failure,
20           :vagrant_save_failure,
21           :network_save_failure
22 
23     register_bool :save
24   end
25 end
execute() click to toggle source
Calls superclass method
   # File lib/nucleon/action/network/vagrantfile.rb
36 def execute
37   super do |node|
38     ensure_network do
39       generated_vagrantfile_name = File.join(CORL.lib_path, 'core', 'vagrant', 'Vagrantfile')
40       project_vagrantfile_name   = File.join(network.directory, 'Vagrantfile')
41       success                    = true
42 
43       corl_vagrantfile = Util::Disk.read(generated_vagrantfile_name)
44 
45       if settings[:save]
46         if File.exists?(project_vagrantfile_name)
47           backup_file = "#{project_vagrantfile_name}.backup"
48 
49           unless FileUtils.mv(project_vagrantfile_name, backup_file, :force => true)
50             error('file_save', { :file => blue(backup_file) })
51             myself.status = code.vagrant_backup_failure
52             success       = false
53           end
54         end
55 
56         if success
57           unless Util::Disk.write(project_vagrantfile_name, corl_vagrantfile)
58             error('file_save', { :file => blue(project_vagrantfile_name) })
59             myself.status = code.vagrant_save_failure
60             success       = false
61           end
62 
63           if success
64             if network.save({ :files => 'Vagrantfile', :remote => settings[:net_remote], :message => "Saving new Vagrantfile.", :allow_empty => true })
65               success('update', { :file => blue('Vagrantfile'), :remote_text => yellow(remote_message(settings[:net_remote])) })
66             else
67               error('update', { :file => blue('Vagrantfile') })
68               myself.status = code.network_save_failure
69             end
70           end
71         end
72       else
73         puts corl_vagrantfile
74       end
75     end
76   end
77 end
ignore() click to toggle source
   # File lib/nucleon/action/network/vagrantfile.rb
29 def ignore
30   node_ignore
31 end