44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
# File 'lib/legion/cli/bootstrap_command.rb', line 44
def execute(source)
require_relative 'config_import'
require_relative 'config_scaffold'
require_relative 'setup_command'
out = formatter
results = {}
warns = []
print_step(out, 'Pre-flight checks')
results[:preflight] = run_preflight_checks(out, warns)
results[:cleaned] = clean_settings(out) if options[:clean]
print_step(out, "Fetching config from #{source}")
body = ConfigImport.fetch_source(source)
config = ConfigImport.parse_payload(body)
pack_names = Array(config.delete(:packs)).map(&:to_s).reject(&:empty?)
results[:packs_requested] = pack_names
paths = ConfigImport.write_config(config, force: options[:force])
results[:config_written] = paths
unless options[:json]
if paths.empty?
out.warn('No config files were written (config was empty after removing packs).')
else
paths.each { |p| out.success("Written: #{p}") }
end
end
results[:scaffold] = :skipped
results[:packs_installed] = install_packs_step(pack_names, out)
summary = build_summary(config, results, warns)
results[:summary] = summary
print_summary(out, summary)
if options[:start]
print_step(out, 'Starting services')
results[:services_started] = start_services(out)
end
out.json(results) if options[:json]
rescue CLI::Error => e
formatter.error(e.message)
raise SystemExit, 1
end
|