Class: Vagrant::RsVagrantShim::Provisioners::RsVagrantShim::Config
- Inherits:
-
Provisioners::ChefSolo::Config
- Object
- Provisioners::ChefSolo::Config
- Vagrant::RsVagrantShim::Provisioners::RsVagrantShim::Config
- Defined in:
- lib/rs_vagrant_shim/vagrant/rs_vagrant_shim/provisioners/rs_vagrant_shim.rb
Instance Attribute Summary collapse
-
#one_time_runlist_file ⇒ Object
readonly
Returns the value of attribute one_time_runlist_file.
-
#run_list_dir ⇒ Object
Returns the value of attribute run_list_dir.
-
#shim_dir ⇒ Object
Returns the value of attribute shim_dir.
Instance Method Summary collapse
-
#validate(env, errors) ⇒ Object
TODO: Better error handling, verify shim dir and runlist dir exist, catch json errors when parsing runlists.
Instance Attribute Details
#one_time_runlist_file ⇒ Object (readonly)
Returns the value of attribute one_time_runlist_file.
30 31 32 |
# File 'lib/rs_vagrant_shim/vagrant/rs_vagrant_shim/provisioners/rs_vagrant_shim.rb', line 30 def one_time_runlist_file @one_time_runlist_file end |
#run_list_dir ⇒ Object
Returns the value of attribute run_list_dir.
29 30 31 |
# File 'lib/rs_vagrant_shim/vagrant/rs_vagrant_shim/provisioners/rs_vagrant_shim.rb', line 29 def run_list_dir @run_list_dir end |
#shim_dir ⇒ Object
Returns the value of attribute shim_dir.
28 29 30 |
# File 'lib/rs_vagrant_shim/vagrant/rs_vagrant_shim/provisioners/rs_vagrant_shim.rb', line 28 def shim_dir @shim_dir end |
Instance Method Details
#validate(env, errors) ⇒ Object
TODO: Better error handling, verify shim dir and runlist dir exist, catch json errors when parsing runlists
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/rs_vagrant_shim/vagrant/rs_vagrant_shim/provisioners/rs_vagrant_shim.rb', line 33 def validate(env, errors) errors.add(I18n.t("vagrant.config.rs_vagrant_shim.shim_dir_missing")) if !@shim_dir || @shim_dir.empty? errors.add(I18n.t("vagrant.config.rs_vagrant_shim.run_list_dir_missing")) if !@run_list_dir || @run_list_dir.empty? if @shim_dir && !@shim_dir.empty? && @run_list_dir && !@run_list_dir.empty? node_js_file = File.join(Dir.pwd, @shim_dir, 'node.js') dispatch_dir = File.join(Dir.pwd, @shim_dir, 'dispatch') FileUtils.mkdir_p dispatch_dir unless File.directory? dispatch_dir dispatch_files = Dir.entries(dispatch_dir).reject{|f| /^\.+/ =~ f}.sort_by{|f| File.mtime(File.join(dispatch_dir, f))} runlist = JSON.parse(File.read(File.join(Dir.pwd, @run_list_dir, 'default.json'))) if File.exist? node_js_file runlist.merge! JSON.parse(File.read(node_js_file))["normal"] end # A specified runlist trumps all, but still inherits from default if ENV['runlist'] runlist_file = File.join(Dir.pwd, @run_list_dir, "#{ENV['runlist']}.json") runlist.merge!(JSON.parse(File.read(runlist_file))) if File.exist? runlist_file elsif dispatch_files.length > 0 dispatch_file = File.join(dispatch_dir, dispatch_files.first) runlist.merge!(JSON.parse(File.read(dispatch_file))) @one_time_runlist_file = dispatch_file end @json = {:rs_vagrant_shim => to_hash}.merge(runlist) @run_list = runlist['run_list'] end super(env, errors) end |