Class: Configuratron
- Inherits:
-
Object
- Object
- Configuratron
- Defined in:
- lib/s3crets_merge.rb
Instance Attribute Summary collapse
-
#files_updated ⇒ Object
readonly
Returns the value of attribute files_updated.
-
#keys ⇒ Object
readonly
Returns the value of attribute keys.
-
#overwrite ⇒ Object
readonly
Returns the value of attribute overwrite.
Instance Method Summary collapse
-
#initialize(opts = {}) ⇒ Configuratron
constructor
A new instance of Configuratron.
- #replace_config(dir) ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Configuratron
Returns a new instance of Configuratron.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/s3crets_merge.rb', line 5 def initialize(opts={}) if opts[:secrets_file] begin @secrets = YAML::load_file(opts[:secrets_file]) rescue Exception => e raise RuntimeError, "Yaml config file not found" end else @secrets = find_secrets end @files_updated = [] @overwrite = opts.has_key?(:overwrite) ? opts[:overwrite] : false replace_config(opts[:json_dir]) end |
Instance Attribute Details
#files_updated ⇒ Object (readonly)
Returns the value of attribute files_updated.
3 4 5 |
# File 'lib/s3crets_merge.rb', line 3 def files_updated @files_updated end |
#keys ⇒ Object (readonly)
Returns the value of attribute keys.
3 4 5 |
# File 'lib/s3crets_merge.rb', line 3 def keys @keys end |
#overwrite ⇒ Object (readonly)
Returns the value of attribute overwrite.
3 4 5 |
# File 'lib/s3crets_merge.rb', line 3 def overwrite @overwrite end |
Instance Method Details
#replace_config(dir) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/s3crets_merge.rb', line 24 def replace_config(dir) search_folder = File.(dir) files = Dir.glob(search_folder + "/*.json") if files.empty? puts "Was unable to find any JSON files [#{search_folder}]" else Dir.glob(File.(dir) + "/*.json") do |json_file| next if json_file =~ /.new./ node_data = JSON.parse(File.read(json_file)) modified = merge_hashes(@secrets, node_data) if modified file_to_write = get_file_name(json_file) files_updated << file_to_write File.open(file_to_write, 'w') do |fh| fh.puts JSON.pretty_generate(node_data) fh.close end end end end end |