lib/kontena/cli/apps/common.rb in kontena-cli-0.12.3 vs lib/kontena/cli/apps/common.rb in kontena-cli-0.13.0

- old
+ new

@@ -73,31 +73,45 @@ # @param [String] service_name # @param [String] prefix # @return [Hash] def extend_options(options, file, service_name, prefix) parent_options = parse_services(file, service_name, prefix) - options['environment'] = extend_env_vars(parent_options, options) + options['environment'] = extend_env_vars(parent_options['environment'], options['environment']) + options['secrets'] = extend_secrets(parent_options['secrets'], options['secrets']) parent_options.merge(options) end # @param [Hash] options def normalize_env_vars(options) if options['environment'].is_a?(Hash) options['environment'] = options['environment'].map{|k, v| "#{k}=#{v}"} end end - # @param [Hash] from - # @param [Hash] to + # @param [Array] from + # @param [Array] to # @return [Array] def extend_env_vars(from, to) - env_vars = to['environment'] || [] - if from['environment'] - from['environment'].each do |env| - env_vars << env unless to['environment'] && to['environment'].find {|key| key.split('=').first == env.split('=').first} + env_vars = to || [] + if from + from.each do |env| + env_vars << env unless to && to.find {|key| key.split('=').first == env.split('=').first} end end env_vars + end + + # @param [Array] from + # @param [Array] to + # @return [Array] + def extend_secrets(from, to) + secrets = to || [] + if from + from.each do |from_secret| + secrets << from_secret unless to && to.any? {|to_secret| to_secret['secret'] == from_secret['secret']} + end + end + secrets end # @param [Hash] services # @param [String] file def create_yml(services, file = 'kontena.yml')