Class: Capsium::Cli::Package
- Inherits:
-
Thor
- Object
- Thor
- Capsium::Cli::Package
- Extended by:
- ThorExt::Start
- Includes:
- Formatting
- Defined in:
- lib/capsium/cli/package.rb
Instance Method Summary collapse
- #decrypt(path_to_package) ⇒ Object
- #encrypt(path_to_package) ⇒ Object
- #info(path_to_package) ⇒ Object
- #manifest(path_to_package) ⇒ Object
- #metadata(path_to_package) ⇒ Object
- #pack(path_to_package) ⇒ Object
- #routes(path_to_package) ⇒ Object
- #sign(path_to_package) ⇒ Object
- #storage(path_to_package) ⇒ Object
- #test(path_to_package) ⇒ Object
- #unpack(path_to_package) ⇒ Object
- #validate(path_to_package) ⇒ Object
- #verify_signature(path_to_package) ⇒ Object
Methods included from ThorExt::Start
Instance Method Details
#decrypt(path_to_package) ⇒ Object
128 129 130 131 132 |
# File 'lib/capsium/cli/package.rb', line 128 def decrypt(path_to_package) output = [:output] || "#{File.basename(path_to_package, '.cap')}-decrypted.cap" Capsium::Package::Cipher.new.decrypt(path_to_package, [:private_key], output) puts "Package decrypted: #{output}" end |
#encrypt(path_to_package) ⇒ Object
114 115 116 117 118 119 |
# File 'lib/capsium/cli/package.rb', line 114 def encrypt(path_to_package) Capsium::Package::Cipher.new.encrypt( path_to_package, [:public_key], [:output] ) puts "Package encrypted: #{[:output]}" end |
#info(path_to_package) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/capsium/cli/package.rb', line 14 def info(path_to_package) package = Capsium::Package.new(path_to_package, store: [:store]) puts "Package Path: #{package.path}" puts "Routes: #{package.routes.to_hash}" puts "Manifest: #{package.manifest.to_hash}" print_dependency_tree(package) end |
#manifest(path_to_package) ⇒ Object
25 26 27 28 |
# File 'lib/capsium/cli/package.rb', line 25 def manifest(path_to_package) package = Capsium::Package.new(path_to_package) puts JSON.pretty_generate(package.manifest.to_hash) end |
#metadata(path_to_package) ⇒ Object
46 47 48 49 |
# File 'lib/capsium/cli/package.rb', line 46 def (path_to_package) package = Capsium::Package.new(path_to_package) puts JSON.pretty_generate(package..to_hash) end |
#pack(path_to_package) ⇒ Object
54 55 56 57 58 |
# File 'lib/capsium/cli/package.rb', line 54 def pack(path_to_package) package = Capsium::Package.new(path_to_package) packager = Capsium::Packager.new packager.pack(package, ) end |
#routes(path_to_package) ⇒ Object
39 40 41 42 |
# File 'lib/capsium/cli/package.rb', line 39 def routes(path_to_package) package = Capsium::Package.new(path_to_package) puts JSON.pretty_generate(package.routes.to_hash) end |
#sign(path_to_package) ⇒ Object
86 87 88 89 |
# File 'lib/capsium/cli/package.rb', line 86 def sign(path_to_package) Capsium::Package::Signer.sign_package(path_to_package, [:key], [:cert]) puts "Package signed: #{path_to_package}" end |
#storage(path_to_package) ⇒ Object
32 33 34 35 |
# File 'lib/capsium/cli/package.rb', line 32 def storage(path_to_package) package = Capsium::Package.new(path_to_package) puts JSON.pretty_generate(package.storage.to_hash) end |
#test(path_to_package) ⇒ Object
136 137 138 139 140 141 142 143 144 145 |
# File 'lib/capsium/cli/package.rb', line 136 def test(path_to_package) package = Capsium::Package.new(path_to_package) report = Capsium::Package::Testing::TestSuite.new(package).run report.results.each { |result| puts format_result(result) } if report.results.empty? puts "No tests found (#{Capsium::Package::Testing::TestSuite::TESTS_DIR}/*.yaml)" end puts report.summary raise Thor::Error, "Package tests failed" unless report.ok? end |
#unpack(path_to_package) ⇒ Object
63 64 65 66 67 |
# File 'lib/capsium/cli/package.rb', line 63 def unpack(path_to_package) destination = [:output] || File.basename(path_to_package, ".cap") Capsium::Packager.new.unpack(path_to_package, destination) puts "Package unpacked to: #{destination}" end |
#validate(path_to_package) ⇒ Object
71 72 73 74 75 76 77 |
# File 'lib/capsium/cli/package.rb', line 71 def validate(path_to_package) results = Capsium::Package::Validator.new(path_to_package).run results.each { |result| puts format_result(result) } return if results.all?(&:ok?) raise Thor::Error, "Package validation failed" end |
#verify_signature(path_to_package) ⇒ Object
97 98 99 100 101 102 103 104 105 |
# File 'lib/capsium/cli/package.rb', line 97 def verify_signature(path_to_package) unless Capsium::Package::Signer.verify_package(path_to_package, [:cert]) raise Thor::Error, "Signature verification failed: #{path_to_package}" end puts "Signature valid: #{path_to_package}" rescue Capsium::Package::Signer::SignatureError => e raise Thor::Error, e. end |