import ArgumentParser import CliClient import Dependencies struct EncryptCommand: AsyncParsableCommand { static let commandName = "encrypt" static let configuration = CommandConfiguration( commandName: commandName, abstract: createAbstract("Encrypt a vault file.") ) @OptionGroup var options: VaultOptions @Option( name: .shortAndLong, help: "Output file." ) var output: String? mutating func run() async throws { @Dependency(\.cliClient) var cliClient var args = ["encrypt"] if let output { args.append(contentsOf: ["--output", output]) } try await cliClient.runVaultCommand( options.vaultOptions(arguments: args, configuration: nil), logging: options.loggingOptions(commandName: Self.commandName) ) } }