25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/legion/cli/update_command.rb', line 25
def gems
out = formatter
gem_bin = File.join(RbConfig::CONFIG['bindir'], 'gem')
unless File.executable?(gem_bin)
out.error("Gem binary not found at #{gem_bin}")
raise SystemExit, 1
end
Connection.ensure_settings(resolve_secrets: false)
Legion::Extensions::GemSource.setup!
target_gems = discover_legion_gems
out.('Checking for updates') unless options[:json]
before = snapshot_versions(target_gems)
results = update_gems(target_gems, gem_bin, dry_run: options[:dry_run])
Gem::Specification.reset unless options[:dry_run]
after = options[:dry_run] ? before : snapshot_versions(target_gems)
if options[:json]
out.json(gems: results, dry_run: options[:dry_run])
else
display_results(out, results, before, after)
end
cleanup_old_gems(out, target_gems) if options[:cleanup] && !options[:dry_run]
end
|