CrossClj

1.10.0-alpha4 docs

SourceDocs



RECENT
    VARS
    *sh-dir*
    *sh-env*
    aconcat
    as-env-strings
    parse-args
    sh
    stream-to-bytes
    stream-to-enc
    stream-to-string
    with-sh-dir
    with-sh-env

    « Index of all namespaces of this project

    Conveniently launch a sub-process providing its stdin and
    collecting its stdout

    — Chris Houser, Stuart Halloway

    Private
    (aconcat type & xs)
    Concatenates arrays of given type.
    
    Private
    (as-env-strings arg)
    Helper so that callers can pass a Clojure map for the :env to sh.
    
    Private
    (parse-args args)
    (sh & args)
    Passes the given strings to Runtime.exec() to launch a sub-process.
    
    Options are
    
    :in      may be given followed by any legal input source for
             clojure.java.io/copy, e.g. InputStream, Reader, File, byte[],
             or String, to be fed to the sub-process's stdin.
    :in-enc  option may be given followed by a String, used as a character
             encoding name (for example "UTF-8" or "ISO-8859-1") to
             convert the input string specified by the :in option to the
             sub-process's stdin.  Defaults to UTF-8.
             If the :in option provides a byte array, then the bytes are passed
             unencoded, and this option is ignored.
    :out-enc option may be given followed by :bytes or a String. If a
             String is given, it will be used as a character encoding
             name (for example "UTF-8" or "ISO-8859-1") to convert
             the sub-process's stdout to a String which is returned.
             If :bytes is given, the sub-process's stdout will be stored
             in a byte array and returned.  Defaults to UTF-8.
    :env     override the process env with a map (or the underlying Java
             String[] if you are a masochist).
    :dir     override the process dir with a String or java.io.File.
    
    You can bind :env or :dir for multiple operations using with-sh-env
    and with-sh-dir.
    
    sh returns a map of
      :exit => sub-process's exit code
      :out  => sub-process's stdout (as byte[] or String)
      :err  => sub-process's stderr (String via platform default encoding)
    Private
    (stream-to-bytes in)
    Private
    (stream-to-enc stream enc)
    Private
    (stream-to-string in)(stream-to-string in enc)
    macro
    (with-sh-dir dir & forms)
    Sets the directory for use with sh, see sh for details.
    
    macro
    (with-sh-env env & forms)
    Sets the environment for use with sh, see sh for details.