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
47
48
49
50
51
52
53
|
# File 'lib/vkit/cli/commands/init_command.rb', line 11
def call(dir:, packs:)
dir = File.expand_path(dir)
FileUtils.mkdir_p(dir)
create_structure(dir)
manager = Vkit::CLI::PolicyPack::Manager.new(
project_root: dir
)
total_policies = 0
installed = []
if packs.nil? || packs.empty?
puts "\nℹ️ No packs specified. Installing 'starter' for secure defaults."
packs = ["starter"]
end
packs.each do |pack_name|
count = manager.install_with_deps!(pack_name)
total_policies += count
installed << pack_name
metadata = manager.pack_metadata(pack_name)
puts "✓ Installed #{pack_name} pack (v#{metadata['version']}) - #{count} policies"
end
puts "\n✅ VaultKit project initialized"
puts " Location: #{dir}"
puts " Packs: #{installed.join(', ')}"
puts " Policies: #{total_policies} total"
puts "\nNext steps:"
puts " 1. Review policies in config/policies/"
puts " 2. Run: vkit scan <datasource> --apply"
puts " 3. Run: vkit policy bundle"
puts " 4. Run: vkit policy deploy"
rescue StandardError => e
puts "❌ Error: #{e.message}"
exit 1
end
|