Class: Vkit::CLI::Commands::PolicyPackListCommand

Inherits:
BaseCommand
  • Object
show all
Defined in:
lib/vkit/cli/commands/policy_pack_list_command.rb

Instance Method Summary collapse

Instance Method Details

#call(dir:) ⇒ Object



9
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
# File 'lib/vkit/cli/commands/policy_pack_list_command.rb', line 9

def call(dir:)
  manager = Vkit::CLI::PolicyPack::Manager.new(
    project_root: dir
  )

  packs = manager.list_status

  if packs.empty?
    puts "No policy packs available."
    return
  end

  puts "Available policy packs:\n\n"

  packs.each do |p|
    name = p["name"]
    shipped = p["shipped_version"]
    installed = p["installed"]
    installed_version = p["installed_version"]
    drift = p["drift"]

    if installed
      if drift
        puts "#{name} (installed v#{installed_version}, available v#{shipped})"
      else
        puts "#{name} v#{installed_version}"
      end
    else
      puts "  #{name} (not installed)"
    end
  end
rescue StandardError => e
  puts "❌ Error: #{e.message}"
  exit 1
end