Module: UtilityConfig
- Defined in:
- lib/nexpose_sccm/utilities/utility_config.rb
Class Method Summary collapse
- .load_config(settings_locations, settings_dir = nil) ⇒ Object
- .load_encrypt(settings) ⇒ Object
- .save_encrypt(settings_locations, settings_dir = nil) ⇒ Object
Class Method Details
.load_config(settings_locations, settings_dir = nil) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/nexpose_sccm/utilities/utility_config.rb', line 2 def self.load_config(settings_locations, settings_dir=nil) # Load settings.yml from -s option or parse known locations for configuration file begin settings_dir = settings_dir.nil? ? settings_locations : [settings_dir] settings = nil settings_dir.each do |dir| Dir.glob(File.join(dir, '*.yml')) do |yml_file| tmp_settings = YAML::load_file(yml_file) next if tmp_settings.nil? settings = settings.nil? ? tmp_settings.dup : settings.merge(tmp_settings.to_h) end end rescue Exception => e abort("Could not parse or load settings file: #{e}") end settings end |
.load_encrypt(settings) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/nexpose_sccm/utilities/utility_config.rb', line 21 def self.load_encrypt(settings) # Load encrypted settings if defined begin if settings[:secret] priv_key = OpenSSL::PKey::RSA.new(File.read(File.join(settings[:secret][:encrypt_key_dir], 'rsa_key'))) dec_buf = priv_key.private_decrypt(Base64.decode64(File.read(settings[:secret][:encrypt_cred_file]))) YAML::load(dec_buf).each do |key,value| value.each do |k,v| if v.class == String settings[key][k] = v elsif v.class == Hash v.each do |k2,v2| settings[key][k][k2] = v2 end end end end end return settings rescue Exception => e abort("Could not parse or load encrypted file #{settings[:secret][:encrypt_cred_file]} : #{e}") end end |
.save_encrypt(settings_locations, settings_dir = nil) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/nexpose_sccm/utilities/utility_config.rb', line 45 def self.save_encrypt(settings_locations, settings_dir=nil) begin settings_dir = settings_dir.nil? ? settings_locations : [settings_dir] settings_dir.each do |dir| Dir.glob(File.join(dir, '*.yml')) do |yml_file| text = File.read(yml_file) new_contents = text.gsub(/:\s+[\'\"]\(enc\).*[\'\"][\r\n]*/, ": 'secret'\n") File.open(yml_file, "w") {|file| file.puts new_contents} end end rescue Exception => e abort("Could not parse or save settings file: #{e}") end end |