lib/conjur/command/plugin.rb in conjur-cli-5.1.0 vs lib/conjur/command/plugin.rb in conjur-cli-5.1.1

- old
+ new

@@ -39,11 +39,11 @@ c.action do |_, _, args| self.assert_empty(args) Conjur::Config.plugins.each do |p| begin gem = Gem::Specification.find_by_name "conjur-asset-#{p}" - puts "#{p} (#{gem.version})" + puts "#{p} (#{gem.version}) - #{gem.summary}" rescue Gem::LoadError nil end end end @@ -119,20 +119,21 @@ modify_plugin_list('remove', name) end end def modify_plugin_list(op, plugin_name) - config_exists = false - Conjur::Config.plugin_config_files.each do |f| - if !File.file?(f) - FileUtils.touch(f) - end + config_found = false + # Check the dedicated plugin config file first + (Conjur::Config.plugin_config_files + Conjur::Config.default_config_files).uniq!.each do |f| + if File.exists?(f) and not config_found # only write to the first file found + config_found = true + config = YAML.load(IO.read(f)).stringify_keys rescue {} + config['plugins'] ||= [] + config['plugins'] += [plugin_name] if op == 'add' + config['plugins'] -= [plugin_name] if op == 'remove' + config['plugins'].uniq! - config = YAML.load(IO.read(f)).stringify_keys rescue {} - config['plugins'] ||= [] - config['plugins'] += [plugin_name] if op == 'add' - config['plugins'] -= [plugin_name] if op == 'remove' - config['plugins'].uniq! - - File.write(f, YAML.dump(config)) + File.write(f, YAML.dump(config)) + end + exit_now! 'No Conjur config file found for plugin installation' unless config_found end end