import Commanderimport Foundationstruct CLIOutputPreferences { let format: OutputFormat let jsonOnly: Bool let pretty: Bool var usesJSONOutput: Bool { self.jsonOnly || self.format == .json } static func from(values: ParsedValues) -> CLIOutputPreferences { let jsonOnly = values.flags.contains("jsonOnly") let format = CodexBarCLI.decodeFormat(from: values) let pretty = values.flags.contains("pretty") return CLIOutputPreferences(format: format, jsonOnly: jsonOnly, pretty: pretty) } static func from(argv: [String]) -> CLIOutputPreferences { var jsonOnly = false var pretty = false var format: OutputFormat = .text var index = 0 while index < argv.count { let arg = argv[index] switch arg { case "--json-only": jsonOnly = true format = .json case "--json": format = .json case "--pretty": pretty = true case "--format": let next = index + 1 if next < argv.count, let parsed = OutputFormat(argument: argv[next]) { format = parsed index += 1 } default: break } index += 1 } return CLIOutputPreferences(format: format, jsonOnly: jsonOnly, pretty: pretty) }}
import Commander
import Foundation
struct CLIOutputPreferences {
let format: OutputFormat
let jsonOnly: Bool
let pretty: Bool
var usesJSONOutput: Bool {
self.jsonOnly || self.format == .json
}
static func from(values: ParsedValues) -> CLIOutputPreferences {
let jsonOnly = values.flags.contains("jsonOnly")
let format = CodexBarCLI.decodeFormat(from: values)
let pretty = values.flags.contains("pretty")
return CLIOutputPreferences(format: format, jsonOnly: jsonOnly, pretty: pretty)
}
static func from(argv: [String]) -> CLIOutputPreferences {
var jsonOnly = false
var pretty = false
var format: OutputFormat = .text
var index = 0
while index < argv.count {
let arg = argv[index]
switch arg {
case "--json-only":
jsonOnly = true
format = .json
case "--json":
format = .json
case "--pretty":
pretty = true
case "--format":
let next = index + 1
if next < argv.count, let parsed = OutputFormat(argument: argv[next]) {
format = parsed
index += 1
}
default:
break
}
index += 1
}
return CLIOutputPreferences(format: format, jsonOnly: jsonOnly, pretty: pretty)
}
}