class Capsium::Cli::Package
Public Instance Methods
Source
# File lib/capsium/cli/package.rb, line 157 def decrypt(path_to_package) key = options[:private_key] || options[:key] raise Thor::Error, "decrypt requires --private-key (RSA) or --key (OpenPGP)" if key.nil? output = options[:output] || "#{File.basename(path_to_package, '.cap')}-decrypted.cap" cipher = if options[:openpgp] Capsium::Package::OpenPgpCipher.new else Capsium::Package::Cipher.for_encrypted(path_to_package) end cipher.decrypt(path_to_package, key, output) puts "Package decrypted: #{output}" end
Source
# File lib/capsium/cli/package.rb, line 140 def encrypt(path_to_package) key = options[:public_key] || options[:recipient] raise Thor::Error, "encrypt requires --public-key or --openpgp --recipient" if key.nil? cipher = options[:openpgp] ? Capsium::Package::OpenPgpCipher.new : Capsium::Package::Cipher.new cipher.encrypt(path_to_package, key, options[:output]) puts "Package encrypted: #{options[:output]}" end
Source
# File lib/capsium/cli/package.rb, line 14 def info(path_to_package) package = Capsium::Package.new(path_to_package, store: options[:store]) puts "Package Path: #{package.path}" puts "Routes: #{package.routes.to_hash}" puts "Manifest: #{package.manifest.to_hash}" print_dependency_tree(package) end
Source
# 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
Source
# File lib/capsium/cli/package.rb, line 46 def metadata(path_to_package) package = Capsium::Package.new(path_to_package) puts JSON.pretty_generate(package.metadata.to_hash) end
Source
# File lib/capsium/cli/package.rb, line 59 def pack(path_to_package) package = Capsium::Package.new(path_to_package, store: options[:store]) packager = Capsium::Packager.new packager.pack(package, options) end
Source
# File lib/capsium/cli/package.rb, line 78 def push(path_to_package) registry = Capsium::Registry.fetch(options[:registry] || ENV.fetch("CAPSIUM_REGISTRY", nil)) entry = registry.push(path_to_package) puts "Pushed #{entry.name} #{entry.version} to #{registry.location}" rescue Capsium::Registry::RegistryError => e raise Thor::Error, e.message end
Source
# 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
Source
# File lib/capsium/cli/package.rb, line 103 def sign(path_to_package) if options[:openpgp] && options[:cert] raise Thor::Error, "--cert is only used with X.509 signing" end if options[:openpgp] Capsium::Package::OpenPgpSigner.sign_package(path_to_package, options[:key]) else Capsium::Package::Signer.sign_package(path_to_package, options[:key], options[:cert]) end puts "Package signed: #{path_to_package}" end
Source
# 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
Source
# File lib/capsium/cli/package.rb, line 173 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
Source
# File lib/capsium/cli/package.rb, line 68 def unpack(path_to_package) destination = options[:output] || File.basename(path_to_package, ".cap") Capsium::Packager.new.unpack(path_to_package, destination) puts "Package unpacked to: #{destination}" end
Source
# File lib/capsium/cli/package.rb, line 88 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
# File lib/capsium/cli/package.rb, line 121 def verify_signature(path_to_package) verifier = options[:openpgp] ? Capsium::Package::OpenPgpSigner : Capsium::Package::Signer unless verifier.verify_package(path_to_package, options[: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.message end