API for clojure.java.process - Clojure v1.12.0 (in development)


Full namespace name: clojure.java.process

Overview

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.

Public Variables and Functions



capture

function
Usage: (capture input-stream & opts)
Read from input-stream until EOF and return a String (or nil if 0 length).
Takes same opts as clojure.java.io/copy - :buffer-size and :encoding

    Added in Clojure version 1.12
Source


exec

function
Usage: (exec & opts+args)
Execute a command and on successful exit, return the captured output,
else throw RuntimeException. Args are the same as 'start' and options
if supplied override the default 'exec' settings.

    Added in Clojure version 1.12
Source


from-file

function
Usage: (from-file f)
Coerce f to a file per clojure.java.io/file and return a ProcessBuilder.Redirect reading from the file.
This can be passed to 'start' in :in.

    Added in Clojure version 1.12
Source


ok?

function
Usage: (ok? process-map)
Given the map returned from 'start', wait for the process to exit
and then return true on success

    Added in Clojure version 1.12
Source


start

function
Usage: (start & opts+args)
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. The map is also an IDeref that waits for process exit
and returns the exit code.

    Added in Clojure version 1.12
Source


to-file

function
Usage: (to-file f & {:keys [append], :as opts})
Coerce f to a file per clojure.java.io/file and return a ProcessBuilder.Redirect writing to the file.
Set ':append' in opts to append. This can be passed to 'start' in :out or :err.

    Added in Clojure version 1.12
Source
Logo & site design by Tom Hickey.
Clojure auto-documentation system by Tom Faulhaber.