clojure.tools.tools.api

This api provides functions that can be executed from the Clojure tools using -Ttools.

install

(install {:keys [as], :as args})
Install a tool under a local tool name for later use. On install, the tool is procured, and
persisted with the tool name for later use.

Options:
  lib-name (required) - value is coord map (git coords may omit sha)
  :as (required) - tool name

Example:
  clj -Ttools install io.github.clojure/tools.deps.graph '{:git/tag "v1.0.63"}' :as deps-graph

Also see:
  clj -X:deps find-versions :lib <lib>

install-latest

(install-latest args)
Install the latest version of a tool under a local tool name for later use.
On install, the tool is procured, and persisted with the tool name for later use.
Either :tool or both :lib and :as are required to install a single tool.
If neither is provided, install the newest version of all tools.

The latest version is determined by listing the versions in semver order,
filtering out versions with special strings, and choosing the last one.
Special strings that cause a version to be ignored are:
    alpha a beta b miletone m rc cr snapshot

It is recommended that Maven tool releases use Maven release version
conventions, and that git tool releases use tags in the format "vA.B.C".

Options:
  :tool tool-name - currently installed tool
  :lib lib-name - mvn lib or git lib with inferrable url
  :as - tool name

Example:
  clj -Ttools install-latest :lib io.github.clojure/tools.deps.graph :as deps-graph
  clj -Ttools install-latest :tool tools

Also see:
  clj -X:deps find-versions :lib <lib>
  clj -Ttools install <lib> <coord> :as tool-name

list

(list _)
List available tools.

Options:
  none

Example:
  clj -Ttools list

remove

(remove {:keys [tool], :as args})
Remove :tool, if it exists.

Options:
  :tool (required) - tool name to remove

show

(show {:keys [tool], :as args})
Print info and usage for this :tool.

Options:
  :tool (required) - tool name to show

Example:
  clj -Ttools show :tool deps-graph