Class: Vkit::CLI::Commands::PolicyPackInfoCommand

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

Instance Method Summary collapse

Instance Method Details

#call(pack_name:, 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_info_command.rb', line 9

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

  meta = manager.(pack_name)

  puts "\nPolicy Pack: #{meta['name']}"
  puts "Version:     v#{meta['version']}"
  puts "Layer:       #{meta['layer'] || 'n/a'}"

  deps = Array(meta["dependencies"])
  puts "Dependencies: #{deps.empty? ? 'none' : deps.join(', ')}"

  band = meta["priority_band"]
  if band
    puts "Priority Band: #{band['min']}#{band['max']}"
  end

  puts "\nPolicies Included:"
  policies = manager.send(:read_pack!, pack_name).last
  policies.each do |p|
    puts "  - #{p['id']}"
  end

  if manager.installed?(pack_name)
    entry = manager.installed_packs[pack_name]
    puts "\nInstalled: yes (v#{entry['version']})"
  else
    puts "\nInstalled: no"
  end
rescue StandardError => e
  puts "❌ Error: #{e.message}"
  exit 1
end