10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/aicli/commands/config.rb', line 10
def run(mode = nil, *key_values)
pastel = Pastel.new
if mode.nil? || mode == 'ui'
Helpers::Config.show_config_ui
return
end
if key_values.empty?
puts "#{Helpers::I18n.t('Error')}: #{Helpers::I18n.t('Missing required parameter')} \"key=value\"\n"
exit 1
end
case mode
when 'get'
config = Helpers::Config.get
key_values.each do |key|
if Helpers::Config.has_own?(config, key)
puts "#{key}=#{config[key]}"
else
raise Helpers::KnownError, "#{Helpers::I18n.t('Invalid config property')}: #{key}"
end
end
when 'set'
pairs = key_values.map do |kv|
k, v = kv.split('=', 2)
[k, v]
end
Helpers::Config.set(pairs)
else
raise Helpers::KnownError, "#{Helpers::I18n.t('Invalid mode')}: #{mode}"
end
rescue Helpers::KnownError, StandardError => e
puts "\n#{pastel.red('✖')} #{e.message}"
Helpers::Error.handle_cli_error(e)
exit 1
end
|