// robots-tool entry point. Input is passed with --text for target portability.

///|
fn main {
  run_cli(@env.args())
}

///|
fn run_cli(args : Array[String]) -> Unit {
  let (cmd, rest) = split_command(args)
  let opts = parse_options(rest)
  if opts.unknown.length() > 0 {
    println(
      "{\"ok\":false,\"error\":{\"kind\":\"UnknownOption\",\"option\":\"\{opts.unknown}\"}}",
    )
    return
  }
  if opts.help || cmd == "help" {
    print_usage()
    return
  }
  if cmd == "version" {
    println(
      "robots-tool \{@robots.library_version()} (liuhang0001/moon-robots)",
    )
    return
  }
  match cmd {
    "parse" => cmd_parse(opts)
    "validate" => cmd_validate(opts)
    "check" => cmd_check(opts)
    "format" => cmd_format(opts)
    "audit" => cmd_audit(opts)
    "stats" => cmd_stats(opts)
    _ =>
      println(
        "{\"ok\":false,\"error\":{\"kind\":\"UnknownCommand\",\"command\":\"\{cmd}\"}}",
      )
  }
}

///|
fn print_usage() -> Unit {
  println("robots-tool 0.1.1")
  println(
    "usage: robots-tool  --text ",
  )
  println(
    "options: --agent  --path  --limits ",
  )
}