haani-niyaz
2/9/2015 - 4:20 AM

Ruby script to update yaml config value via command-line variable

Ruby script to update yaml config value via command-line variable

# call script with: 
# ruby scriptname.rb hieravar=value

require 'yaml'

# Get value to change hieravar=value
arg = ARGV[0].split('=')

field_name  = arg[0]
field_value = arg[1]

# Dictionary
hiera = YAML.load_file('source.yaml')

# Debug
puts hiera.inspect

# Update value
hiera[field_name] = field_value

# Write new data to file
File.open('source.yaml','w') do |h| 
   h.write hiera.to_yaml
end

# Debug
puts hiera['my_value']