clojure.java.process
(source)A process invocation API wrapping the Java process API.
The primary function here is 'start' which starts a process and handles the
streams as directed. It returns a map that contains keys to access the streams
(if available) and the Java Process object. It is also deref-able to wait for
process exit.
Helper functions are available to 'capture' the output of the process stdout
and to wait for an 'ok?' non-error exit. The 'exec' function handles the common
case of `start'ing a process, waiting for process exit, capture and return
stdout.
For more info about this library see:
https://clojuredocs.org/clojure.corePublic Variable | Short Description |
---|---|
capture (clj) | Read from input-stream until EOF and return a String (or nil if 0 length). |
exec (clj) | Execute a command and on successful exit, return the captured output, else throw RuntimeException. |
from-file (clj) | Coerce f to a file per clojure.java.io/file and return a ProcessBuilder.Redirect reading from the file. |
ok? (clj) | Given the map returned from 'start', wait for the process to exit and then return true on success. |
start (clj) | Starts an external command as args and optional leading opts map: :in - a ProcessBuilder.Redirect (default = :pipe) or :inherit :out - a ProcessBuilder.Redirect (default = :pipe) or :inherit :discard :err - a ProcessBuilder.Redirect (default = :pipe) or :inherit :discard :stdout :dir - directory to run the command from, default="." :env - {env-var value} of environment variables (all strings) Returns an ILookup containing the java.lang.Process in :process and the streams :in :out :err. |
to-file (clj) | Coerce f to a file per clojure.java.io/file and return a ProcessBuilder.Redirect writing to the file. |