ClojureDocs

Namespaces

clojure.java.process

A process invocation API wrapping the Java process API.

   The primary function is 'start' which starts a process and handles the
   streams as directed. It returns the Process object. Use 'exit-ref' to wait
   for completion and receive the exit value, and ‘stdout', 'stderr', 'stdin'
   to access the process streams. The 'exec' function handles the common case
   to 'start' a process, wait for process exit, and return stdout.

clojure.java.process (introduced in 1.12.0) provides a process invocation API wrapping the Java process API. Providing a more capable alternative to the older clojure.java.shell namespace.

Vars in clojure.java.process

e

exec
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.
exit-ref
Given a Process (the output of 'start'), return a reference that can be used to wait for process completion then returns the exit value.

f

from-file
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.

i

io-task
no doc

s

start
Start an external command, defined in args. The process environment vars are inherited from the parent by default (use :clear-env to clear them). If needed, provide options in map as first arg: :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 - current directory when the process runs (default=".") :clear-env - if true, remove all inherited parent env vars :env - {env-var value} of environment variables to set (all strings) Returns the java.lang.Process.
stderr
Given a process, return the stderr of the external process (an InputStream)
stdin
Given a process, return the stdin of the external process (an OutputStream)
stdout
Given a process, return the stdout of the external process (an InputStream)

t

to-file
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.