==== Limitations ====
-By default, inferior-shell uses xcvb-driver:run-program/
+By default, inferior-shell uses asdf-driver:run-program
as its universal execution backend, and has its limitations,
which are as follows.
but strips any line-ending at the end of the results,
just like a shell's `cmd` or $(cmd) would do,
more options are accepted and you can define your own, as per
- xcvb-driver's slurp-input-stream protocol.
+ asdf-driver's slurp-input-stream protocol.
On Windows, RUN will not succeed for pipes, only for simple commands.
On Unix, simple commands on localhost are executed directly, but
remote commands and pipes are executed by spawning a shell.
*BACKEND*
a variable to choose between backends. Currently, only supported are
- :AUTO (the default, using xcvb-driver:run-program/, and
+ :AUTO (the default, using asdf-driver:run-program, and
spawning a shell unless it's a simple process), and
:SBCL (only available on #+(and sbcl sb-thread unix),
doesn't need a shell but has some limitations such as
(defsystem :inferior-shell
:defsystem-depends-on (:asdf :asdf-driver)
- :depends-on (:asdf-driver :fare-utils :alexandria :fare-quasiquote-extras :fare-mop
+ :depends-on (:asdf-driver :fare-utils :alexandria :fare-quasiquote-extras :fare-mop :optima
#+sbcl :sb-posix)
:description "spawn local or remote processes and shell pipes"
:around-compile "asdf-driver:call-with-safe-io-syntax"
spec))))
(case output
((t)
- (run-program/ command :ignore-error-status ignore-error-status))
+ (run-program command :ignore-error-status ignore-error-status))
(otherwise
- (run-program/
+ (run-program
command :ignore-error-status ignore-error-status :output output)))))
(defun run-process-spec (spec &rest keys &key ignore-error-status output host backend)