{
  "name": "clojure",
  "description": "Use the Clojure tools to run Clojure programs on the JVM, start a REPL, or invoke a specific function with data",
  "parserDirectives": {
    "flagsArePosixNoncompliant": true
  },
  "options": [
    {
      "names": [
        "-A"
      ],
      "description": "Use concatenated aliases to modify classpath"
    },
    {
      "names": [
        "-X"
      ],
      "args": [
        {
          "name": "a/fn",
          "description": "An alias to refer to its function or a qualified function",
          "isOptional": true
        },
        {
          "name": "kvs",
          "description": "A list of key-value arguments to merge with the exec-args",
          "isOptional": true,
          "isVariadic": true
        },
        {
          "name": "kv-map",
          "description": "Map to merge with the :exec-args map, taking precedence over kvs",
          "isOptional": true
        }
      ]
    },
    {
      "names": [
        "-T"
      ],
      "description": "Invoke tool by name or via aliases ala -X",
      "args": [
        {
          "name": "a/fn",
          "description": "An alias to refer to its function or a qualified function",
          "isOptional": true
        },
        {
          "name": "kvs",
          "description": "A list of key-value arguments to merge with the exec-args",
          "isOptional": true,
          "isVariadic": true
        },
        {
          "name": "kv-map",
          "description": "Map to merge with the :exec-args map, taking precedence over kvs",
          "isOptional": true
        }
      ]
    },
    {
      "names": [
        "-M"
      ],
      "description": "Use concatenated aliases to modify classpath or supply main opts",
      "args": [
        {
          "name": "args",
          "isOptional": true,
          "isVariadic": true
        }
      ]
    },
    {
      "names": [
        "-P"
      ],
      "description": "Prepare deps - download libs, cache classpath, but don't exec"
    },
    {
      "names": [
        "-J"
      ],
      "description": "Pass opt through in java_opts"
    },
    {
      "names": [
        "-Sdeps"
      ],
      "description": "Pass the deps data on the command line",
      "args": [
        {
          "name": "edn",
          "description": "The deps data in edn"
        }
      ]
    },
    {
      "names": [
        "-Spath"
      ],
      "description": "Compute classpath and echo to stdout only"
    },
    {
      "names": [
        "-Scp"
      ],
      "description": "Use specified classpath instead of cached or computed one",
      "args": [
        {
          "name": "cp",
          "description": "The classpath to use"
        }
      ]
    },
    {
      "names": [
        "-Sdescribe"
      ],
      "description": "Print environment and command parsing information as data"
    },
    {
      "names": [
        "-Sforce"
      ],
      "description": "Ignore classpath cache and force recomputation"
    },
    {
      "names": [
        "-Spom"
      ],
      "description": "Generate (or update) pom.xml with deps and paths"
    },
    {
      "names": [
        "-Srepro"
      ],
      "description": "Ignore the ~/.clojure/deps.edn config file"
    },
    {
      "names": [
        "-Sthreads"
      ],
      "description": "Set the number of threads to use when downloading dependencies"
    },
    {
      "names": [
        "-Strace"
      ],
      "description": "Write a trace.edn file that traces deps expansion"
    },
    {
      "names": [
        "-Stree"
      ],
      "description": "Print dependency tree"
    },
    {
      "names": [
        "-Sverbose"
      ],
      "description": "Print all path locations"
    },
    {
      "names": [
        "-version",
        "--version"
      ],
      "description": "Print the Clojure CLI version"
    },
    {
      "names": [
        "-i",
        "--init"
      ],
      "description": "Load a file or resource",
      "args": [
        {
          "name": "path"
        }
      ]
    },
    {
      "names": [
        "-e",
        "--eval"
      ],
      "description": "Evaluate expressions in string; print non-nil values",
      "args": [
        {
          "name": "string"
        }
      ]
    },
    {
      "names": [
        "--report"
      ],
      "description": "Report uncaught exceptions",
      "args": [
        {
          "name": "target",
          "description": "Where to report",
          "suggestions": [
            "file",
            "stderr",
            "none"
          ]
        }
      ]
    },
    {
      "names": [
        "-m",
        "--main"
      ],
      "description": "Call the -main function from a namespace with args",
      "args": [
        {
          "name": "ns-name",
          "description": "The namespace of the -main function"
        },
        {
          "name": "args",
          "description": "The arguments to pass to the -main function",
          "isVariadic": true
        }
      ]
    },
    {
      "names": [
        "-r",
        "--repl"
      ],
      "description": "Run a REPL"
    },
    {
      "names": [
        "-h",
        "-?",
        "--help"
      ],
      "description": "Show help for clojure"
    }
  ]
}
