Files
openclaw/apps/macos/Sources/OpenClawMacCLI/EntryPoint.swift

57 lines
1.8 KiB
Swift
Raw Normal View History

2026-01-20 19:17:18 +00:00
import Foundation
private struct RootCommand {
var name: String
var args: [String]
}
@main
2026-01-30 03:15:10 +01:00
struct OpenClawMacCLI {
2026-01-20 19:17:18 +00:00
static func main() async {
let args = Array(CommandLine.arguments.dropFirst())
let command = parseRootCommand(args)
switch command?.name {
case nil:
printUsage()
case "-h", "--help", "help":
printUsage()
case "connect":
await runConnect(command?.args ?? [])
case "discover":
await runDiscover(command?.args ?? [])
case "wizard":
await runWizardCommand(command?.args ?? [])
default:
2026-01-30 03:15:10 +01:00
fputs("openclaw-mac: unknown command\n", stderr)
2026-01-20 19:17:18 +00:00
printUsage()
exit(1)
}
}
}
private func parseRootCommand(_ args: [String]) -> RootCommand? {
guard let first = args.first else { return nil }
return RootCommand(name: first, args: Array(args.dropFirst()))
}
private func printUsage() {
print("""
2026-01-30 03:15:10 +01:00
openclaw-mac
2026-01-20 19:17:18 +00:00
Usage:
2026-01-30 03:15:10 +01:00
openclaw-mac connect [--url <ws://host:port>] [--token <token>] [--password <password>]
2026-01-20 19:17:18 +00:00
[--mode <local|remote>] [--timeout <ms>] [--probe] [--json]
[--client-id <id>] [--client-mode <mode>] [--display-name <name>]
[--role <role>] [--scopes <a,b,c>]
2026-01-30 03:15:10 +01:00
openclaw-mac discover [--timeout <ms>] [--json] [--include-local]
openclaw-mac wizard [--url <ws://host:port>] [--token <token>] [--password <password>]
2026-01-20 19:17:18 +00:00
[--mode <local|remote>] [--workspace <path>] [--json]
Examples:
2026-01-30 03:15:10 +01:00
openclaw-mac connect
openclaw-mac connect --url ws://127.0.0.1:18789 --json
openclaw-mac discover --timeout 3000 --json
openclaw-mac wizard --mode local
2026-01-20 19:17:18 +00:00
""")
}