require 'json' require 'plan-step-class' class AddEnv def add (key, value) extraConfig = Canzea::config[:catalog_location] + "/env.json" envs = loadFile() envs["vars"][key] = value File.write(extraConfig, JSON.generate(envs)) end def addSecret (key, value) extraConfig = Canzea::config[:catalog_location] + "/env.json" envs = loadFile() envs['secrets'][key] = value File.write(extraConfig, JSON.generate(envs)) end def loadFile() extraConfig = Canzea::config[:catalog_location] + "/env.json" if File.exists?(extraConfig) file = File.read(extraConfig) envs = JSON.parse(file) else envs = {"vars"=>{}, "secrets"=>{}} end return envs end def injectEnvironmentVariables() extraConfig = Canzea::config[:catalog_location] + "/env.json" if File.exists?(extraConfig) puts "-- Reading #{extraConfig}" file = File.read(extraConfig) envs = JSON.parse(file) envs['vars'].keys.each { | key | val = envs['vars'][key] puts "-- #{key} == #{val}" ENV.store(key, val) } envs['secrets'].keys.each { | key | val = envs['secrets'][key] puts "-- #{key} == XXXXXX" ENV.store(key, val) } end end end