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.
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
Usage: (exit-ref process)
Given a Process (the output of 'start'), return a reference that can be used to wait for process completion then returns the exit value.Added in Clojure version 1.12
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
Usage: (start & opts+args)
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.
Added in Clojure version 1.12Usage: (stderr process)
Given a process, return the stderr of the external process (an InputStream)Added in Clojure version 1.12
Usage: (stdin process)
Given a process, return the stdin of the external process (an OutputStream)Added in Clojure version 1.12
Usage: (stdout process)
Given a process, return the stdout of the external process (an InputStream)Added in Clojure version 1.12
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