The cmd Reference Manual

This is the cmd Reference Manual, version 0.0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:04:32 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 cmd

A utility for running external programs

Author

Paul M. Rodriguez <>

License

MIT

Version

0.0.1

Dependency

cmd/cmd (system).

Source

cmd.asd.


2.2 cmd/cmd

Author

Paul M. Rodriguez <>

License

MIT

Dependencies
  • alexandria (system).
  • serapeum (system).
  • cmd/hooks (system).
  • trivia (system).
  • shlex (system).
  • trivial-garbage (system).
Source

cmd.asd.


2.3 cmd/hooks

Author

Paul M. Rodriguez <>

License

MIT

Dependencies
  • alexandria (system).
  • serapeum (system).
Source

cmd.asd.


3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 cmd/cmd.asd

Source

cmd.asd.

Parent Component

cmd (system).

ASDF Systems

3.1.2 cmd/cmd/file-type.lisp

Source

cmd.asd.

Parent Component

cmd/cmd (system).

Packages

cmd/cmd.

Public Interface
Internals

3.1.3 cmd/hooks/file-type.lisp

Source

cmd.asd.

Parent Component

cmd/hooks (system).

Packages

cmd/hooks.

Public Interface

4 Packages

Packages are listed by definition order.


4.1 cmd/hooks

Source

file-type.lisp.

Use List
  • alexandria.
  • common-lisp.
  • serapeum.
Used By List

cmd/cmd.

Public Interface

4.2 cmd/cmd

Source

file-type.lisp.

Nickname

cmd

Use List
  • alexandria.
  • cmd/hooks.
  • common-lisp.
  • serapeum.
Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Special variables

Special Variable: *cmd-env*

Alist of extra environment variables.

Package

cmd/cmd.

Source

file-type.lisp.

Special Variable: *cmd-path*

Extra directories to check for executables.

Package

cmd/cmd.

Source

file-type.lisp.

Special Variable: *command-wrappers*

Commands that fire up other commands.
This list is used by ‘visual-command-p’ to check if the wrapped command is a visual one.
See ‘*visual-commands*’.

Package

cmd/cmd.

Source

file-type.lisp.

Special Variable: *message-hook*
Package

cmd/hooks.

Source

file-type.lisp.

Special Variable: *null-error-output*

Null device for standard error.

By binding this variable you can redirect error output that would otherwise be sent to the null device.

Package

cmd/cmd.

Source

file-type.lisp.

Special Variable: *null-output*

Null device for standard output.

By binding this variable you can redirect output that would otherwise be sent to the null device.

Package

cmd/cmd.

Source

file-type.lisp.

Special Variable: *proc-hook*
Package

cmd/hooks.

Source

file-type.lisp.

Special Variable: *shell*

The shell to use for shell commands.

Defaults to $SHELL.

Package

cmd/cmd.

Source

file-type.lisp.

Special Variable: *terminal*

The terminal is either
- a list of arguments after which the visual command is appended,
- or a function of one argument, the list of commands, returning the new list of commands.
See ‘*visual-commands*’.

Package

cmd/cmd.

Source

file-type.lisp.

Special Variable: *visual-commands*

List of commands that should be run in a ‘*terminal*’ emulator. Also see ‘*command-wrappers*’.

Package

cmd/cmd.

Source

file-type.lisp.


5.1.2 Macros

Macro: with-cmd-dir (dir &body body)

Deprecated; use ‘with-working-directory’ instead.

Package

cmd/cmd.

Source

file-type.lisp.

Macro: with-working-directory ((dir) &body body)

Run BODY with DIR as the current directory.
Calls to ‘cmd’ and its variants with the dynamic extent of the ‘with-working-directory’ form will use ‘dir’ as their working directory.

Package

cmd/cmd.

Source

file-type.lisp.


5.1.3 Compiler macros

Compiler Macro: $cmd (cmd &rest args)
Package

cmd/cmd.

Source

file-type.lisp.

Compiler Macro: cmd (cmd &rest args)
Package

cmd/cmd.

Source

file-type.lisp.

Compiler Macro: cmd! (cmd &rest args)
Package

cmd/cmd.

Source

file-type.lisp.

Compiler Macro: cmd& (cmd &rest args)
Package

cmd/cmd.

Source

file-type.lisp.

Compiler Macro: cmd? (cmd &rest args)
Package

cmd/cmd.

Source

file-type.lisp.

Compiler Macro: psub (cmd &rest args)
Package

cmd/cmd.

Source

file-type.lisp.

Compiler Macro: psub-format (control-string &rest args)
Package

cmd/cmd.

Source

file-type.lisp.


5.1.4 Ordinary functions

Function: $cmd (cmd &rest args)

Return the results of CMD as a string, stripping any trailing newlines, like $(cmd) would in a shell.

As a second value, return the error status.

By default stderr is discarded.

Package

cmd/cmd.

Source

file-type.lisp.

Function: $sh (cmd &rest kwargs &key &allow-other-keys)

Like ‘$cmd’ for a shell command.

Takes a single argument (along with keyword arguments for redirection) and passes it to a shell.

The shell defaults to the value of ‘cmd:*shell*’ (which in turn defaults to the value of SHELL in the environment).

Package

cmd/cmd.

Source

file-type.lisp.

Function: cmd (cmd &rest args)

Run a program.

CMD should be a string naming a program. This command will be run with
its current directory set to the value of the current directory in a
thread-safe manner.

The current directory is based on ‘*default-pathname-defaults*’, not on the OS-level working directory, as the OS-level directory is useless for multi-threaded programs.

A list of strings or pathnames is added to the list of arguments.

A string in ARGS is split into a list of tokens using shell-style
tokenization rules. (To protect a string with spaces, either add
quotation marks, or enclose it in a singleton list.)

A pathname in ARGS is translated to a native namestring and passed as
an argument to the command. The native namestring is not permitted to
start with a dash.

A property list is treated as a list of keyword arguments to
‘uiop:launch-program’. Certain keywords are treated as abbreviations:
e.g. ‘:>’ is an abbreviation for ‘:output’. Abbreviations can be
compound: e.g. ‘:>>’ affects both ‘:output’ and ‘:if-exists’.

By default, standard output is sent to ‘*standard-output*’, and error
output is sent to ‘*message-stream*’.

On Windows, the .exe suffix may be omitted from the name of the
executable.

Package

cmd/cmd.

Source

file-type.lisp.

Function: cmd! (cmd &rest args)

Run CMD purely for its side effects, discarding all output and returning nothing.

Package

cmd/cmd.

Source

file-type.lisp.

Function: cmd& (cmd &rest args)

Like ‘cmd’, but run asynchronously and return a handle on the process (as from ‘launch-program’).

Package

cmd/cmd.

Source

file-type.lisp.

Function: cmd? (cmd &rest args)

Run a program, returning T if it passed, nil otherwise. By default the output is discarded.

Returns the actual exit code as a second value.

Package

cmd/cmd.

Source

file-type.lisp.

Function: current-directory ()

Get the absolute current directory based on ‘*default-pathname-defaults*’.

Package

cmd/cmd.

Source

file-type.lisp.

Function: (setf current-directory) ()
Package

cmd/cmd.

Source

file-type.lisp.

Function: psub (cmd &rest args)
Package

cmd/cmd.

Source

file-type.lisp.

Function: psub-echo (string)

Allow passing STRING to a command that expects a file. This is practically equivalent to

(psub "echo" (list string))

Except that it doesn’t actually launch an external program.

Package

cmd/cmd.

Source

file-type.lisp.

Function: psub-format (control-string &rest args)

Format ARGS using CONTROL-STRING and pass the result as a file to the enclosing command.

This is practically equivalent to

(psub "echo" (list (format nil "?" control-string args))

Except that it doesn’t actually launch an external program.

Package

cmd/cmd.

Source

file-type.lisp.

Function: sh (cmd &rest kwargs &key &allow-other-keys)

Like ‘cmd’ for a shell command.

Takes a single argument (along with keyword arguments for redirection) and passes it to a shell.

The shell defaults to the value of ‘cmd:*shell*’ (which in turn defaults to the value of SHELL in the environment).

Package

cmd/cmd.

Source

file-type.lisp.

Function: sh! (cmd &rest kwargs &key &allow-other-keys)

Like ‘cmd!’ for a shell command.

Takes a single argument (along with keyword arguments for redirection) and passes it to a shell.

The shell defaults to the value of ‘cmd:*shell*’ (which in turn defaults to the value of SHELL in the environment).

Package

cmd/cmd.

Source

file-type.lisp.

Function: sh& (cmd &rest kwargs &key &allow-other-keys)

Like ‘cmd&’ for a shell command.

Takes a single argument (along with keyword arguments for redirection) and passes it to a shell.

The shell defaults to the value of ‘cmd:*shell*’ (which in turn defaults to the value of SHELL in the environment).

Package

cmd/cmd.

Source

file-type.lisp.

Function: sh? (cmd &rest kwargs &key &allow-other-keys)

Like ‘cmd?’ for a shell command.

Takes a single argument (along with keyword arguments for redirection) and passes it to a shell.

The shell defaults to the value of ‘cmd:*shell*’ (which in turn defaults to the value of SHELL in the environment).

Package

cmd/cmd.

Source

file-type.lisp.

Function: vterm-terminal (cmd)

Run visual command CMD in Emacs’ ‘vterm’.

Package

cmd/cmd.

Source

file-type.lisp.


5.1.5 Generic functions

Generic Reader: cmd-error-stderr (condition)
Package

cmd/cmd.

Methods
Reader Method: cmd-error-stderr ((condition cmd-error))
Source

file-type.lisp.

Target Slot

stderr.


5.1.6 Standalone methods

Method: initialize-instance :after ((self cmd) &key argv kwargs)
Source

file-type.lisp.

Method: make-load-form ((self string-token) &optional env)
Source

file-type.lisp.

Method: print-object ((self cmd) stream)
Source

file-type.lisp.

Method: print-object ((object string-token) stream)
Source

file-type.lisp.


5.1.7 Conditions

Condition: cmd-error
Package

cmd/cmd.

Source

file-type.lisp.

Direct superclasses

subprocess-error.

Direct methods

cmd-error-stderr.

Direct Default Initargs
InitargValue
:stderr
Direct slots
Slot: stderr
Initargs

:stderr

Readers

cmd-error-stderr.

Writers

This slot is read-only.


5.1.8 Classes

Class: cmd

A single subcommand, with argv and kwargs ready to pass to ‘uiop:launch-program’.

Package

cmd/cmd.

Source

file-type.lisp.

Direct subclasses

psub.

Direct methods
Direct slots
Slot: argv
Readers

cmd-argv.

Writers

This slot is read-only.

Slot: kwargs
Readers

cmd-kwargs.

Writers

(setf cmd-kwargs).

Class: psub

A process substitution.

Package

cmd/cmd.

Source

file-type.lisp.

Direct superclasses
Direct methods

launch-substitution.

Class: psub-echo

A process substitution that just echoes a string.

Package

cmd/cmd.

Source

file-type.lisp.

Direct superclasses

substitution.

Direct methods
Direct Default Initargs
InitargValue
:string(error no string!)
Direct slots
Slot: string
Package

common-lisp.

Type

string

Initargs

:string

Readers

psub-echo-string.

Writers

This slot is read-only.


5.2 Internals


5.2.1 Constants

Constant: +storage-for-deflex-var-+redirection-operators++

All redirection operators that can be parsed in tokenized strings.

Package

cmd/cmd.

Source

file-type.lisp.

Constant: +storage-for-deflex-var-+subcommand-dividers++

All supported subcommand dividers (e.g. pipelines).

Package

cmd/cmd.

Source

file-type.lisp.


5.2.2 Special variables

Special Variable: *can-use-env-c*

Save whether we can use env -C.

Package

cmd/cmd.

Source

file-type.lisp.

Special Variable: *subprocs*

A table from process to subprocesses.

Package

cmd/cmd.

Source

file-type.lisp.


5.2.3 Symbol macros

Symbol Macro: +dividers+
Package

cmd/cmd.

Source

file-type.lisp.

Symbol Macro: +env+
Package

cmd/cmd.

Source

file-type.lisp.

Symbol Macro: +kill+
Package

cmd/cmd.

Source

file-type.lisp.

Symbol Macro: +ps+
Package

cmd/cmd.

Source

file-type.lisp.

Symbol Macro: +pwd+
Package

cmd/cmd.

Source

file-type.lisp.

Symbol Macro: +redirection-operators+
Package

cmd/cmd.

Source

file-type.lisp.

Symbol Macro: +sh+
Package

cmd/cmd.

Source

file-type.lisp.

Symbol Macro: +subcommand-dividers+
Package

cmd/cmd.

Source

file-type.lisp.

Symbol Macro: +tr+
Package

cmd/cmd.

Source

file-type.lisp.


5.2.4 Macros

Macro: define-cmd-variant (name sh-name lambda-list &body body)
Package

cmd/cmd.

Source

file-type.lisp.

Macro: with-stderr-caching ((&key) &body body)
Package

cmd/cmd.

Source

file-type.lisp.

Macro: with-stderr-file ((var &key) &body body)
Package

cmd/cmd.

Source

file-type.lisp.


5.2.5 Compiler macros

Compiler Macro: cmdq (cmd &rest args)
Package

cmd/cmd.

Source

file-type.lisp.


5.2.6 Ordinary functions

Function: argv+kwargs (args)

Parse ARGS and split them into an argv and keyword arguments.

Package

cmd/cmd.

Source

file-type.lisp.

Function: as-shell (fn cmd &rest kwargs &key &allow-other-keys)
Package

cmd/cmd.

Source

file-type.lisp.

Function: await (proc &key ignore-error-status tokens)

Wait for PROC to finish.

Package

cmd/cmd.

Source

file-type.lisp.

Function: call/cmd-dir (fn dir)
Package

cmd/cmd.

Source

file-type.lisp.

Function: call/stderr-file (fn)
Package

cmd/cmd.

Source

file-type.lisp.

Function: can-use-env-c? ()

Return T if we can use env -C to launch a program in the current directory, instead of using a shell.

Package

cmd/cmd.

Source

file-type.lisp.

Function: cmd-env ()
Package

cmd/cmd.

Source

file-type.lisp.

Function: cmdq (cmd &rest args)
Package

cmd/cmd.

Source

file-type.lisp.

Function: copy-string-token (string-token1 &key string)

Copy an instance of STRING-TOKEN, optionally overriding some or all of its slots.

Package

cmd/cmd.

Source

file-type.lisp.

Function: exe-string (p)
Package

cmd/cmd.

Source

file-type.lisp.

Function: expand-keyword-aliases (args)
Package

cmd/cmd.

Source

file-type.lisp.

Function: expand-redirection-abbrev (keyword)
Package

cmd/cmd.

Source

file-type.lisp.

Function: flatten-string-tokens (list)
Package

cmd/cmd.

Source

file-type.lisp.

Function: get-stderr-output-stream-string (s)
Package

cmd/cmd.

Source

file-type.lisp.

Function: get-tmpfs ()

Get a suitable tmpfs.

Package

cmd/cmd.

Source

file-type.lisp.

Function: kill-process-group (process &key urgent)

Terminate PROCESS and all its descendants.
On Unix, sends a TERM signal by default, or a KILL signal if URGENT.

Package

cmd/cmd.

Source

file-type.lisp.

Function: kill-subprocs (proc &key urgent)

Kill all subprocesses of PROC.

Package

cmd/cmd.

Source

file-type.lisp.

Function: launch-cmd (cmd &rest overrides &key &allow-other-keys)

Auxiliary function for launching CMD with overrides.

Package

cmd/cmd.

Source

file-type.lisp.

Function: launch-pipeline (argv &rest args)
Package

cmd/cmd.

Source

file-type.lisp.

Function: launch-program-in-dir (dir tokens &rest args &key &allow-other-keys)
Package

cmd/cmd.

Source

file-type.lisp.

Function: launch-program-in-dir* (tokens &rest args)

Run a program (with ‘uiop:launch-program’) in the current base directory.

Package

cmd/cmd.

Source

file-type.lisp.

Function: launch-psubs (argv)

Launch any process substitutions in ARGV. Return two values: the new argv and a list of subprocesses (or other cleanup forms).

Package

cmd/cmd.

Source

file-type.lisp.

Function: make-string-token (string)
Package

cmd/cmd.

Source

file-type.lisp.

Function: maybe-visual-command (cmd)
Package

cmd/cmd.

Source

file-type.lisp.

Function: mktemp ()

Create a temporary file for use with process substition. When possible use a tmpfs.

Package

cmd/cmd.

Source

file-type.lisp.

Function: override-default-output-and-error-output (args)

Override null output with ‘*null-output*’ and null error output with ‘*null-error-output*’.

Package

cmd/cmd.

Source

file-type.lisp.

Function: parse-cmd (args)
Package

cmd/cmd.

Source

file-type.lisp.

Function: parse-cmd-args (args &key split)

Lex ARGs.
The result is a list of strings, subcommand dividers, and keyword arguments.

Package

cmd/cmd.

Source

file-type.lisp.

Function: psub-shell (cmd &rest kwargs &key &allow-other-keys)

Like ‘psub’ for a shell command.

Takes a single argument (along with keyword arguments for redirection) and passes it to a shell.

The shell defaults to the value of ‘cmd:*shell*’ (which in turn defaults to the value of SHELL in the environment).

Package

cmd/cmd.

Source

file-type.lisp.

Function: register-subproc (proc subproc)

Register SUBPROC as a subprocess of PROC and return SUBPROC.

Package

cmd/cmd.

Source

file-type.lisp.

Function: register-subprocs (proc &rest subprocs)

Register SUBPROC as a subprocess of PROC.

Package

cmd/cmd.

Source

file-type.lisp.

Function: resolve-dir (dir)

Resolve DIR into an absolute directory based on ‘*default-pathname-defaults*‘, supplemented with the OS-level working directory if that is not absolute.

Package

cmd/cmd.

Source

file-type.lisp.

Function: shell-arg ()
Package

cmd/cmd.

Source

file-type.lisp.

Function: shq (cmd &rest kwargs &key &allow-other-keys)

Like ‘cmdq’ for a shell command.

Takes a single argument (along with keyword arguments for redirection) and passes it to a shell.

The shell defaults to the value of ‘cmd:*shell*’ (which in turn defaults to the value of SHELL in the environment).

Package

cmd/cmd.

Source

file-type.lisp.

Function: simplify-cmd-args (args)

Simplify ARGS at compile time (for compiler macros).

Package

cmd/cmd.

Source

file-type.lisp.

Function: split-cmd (cmd)
Package

cmd/cmd.

Source

file-type.lisp.

Function: split-pipeline (args)

Split ARGS into two values: the last command in the pipeline, and any previous commands.

Package

cmd/cmd.

Source

file-type.lisp.

Function: stage-pipeline (cmds)

Return CMDS as a single command that can be passed to ‘launch-pipeline’.

Package

cmd/cmd.

Source

file-type.lisp.

Function: string-token (string)
Package

cmd/cmd.

Source

file-type.lisp.

Reader: string-token-string (instance)
Package

cmd/cmd.

Source

file-type.lisp.

Target Slot

string.

Function: stringify-pathname (arg)
Package

cmd/cmd.

Source

file-type.lisp.

Function: subprocs (proc)
Package

cmd/cmd.

Source

file-type.lisp.

Function: (setf subprocs) (proc)
Package

cmd/cmd.

Source

file-type.lisp.

Function: update-can-use-env-c ()
Package

cmd/cmd.

Source

file-type.lisp.

Function: validate-env-var (name)

Check that NAME is a valid (portable) name for an environment variable.

Package

cmd/cmd.

Source

file-type.lisp.

Function: visual-command-p (command)

Return true if the COMMAND list runs one of the programs in ‘*visual-commands*’. ‘*command-wrappers*’ are supported, i.e.

env FOO=BAR sudo -i powertop

works.

Package

cmd/cmd.

Source

file-type.lisp.

Function: wrap-cmd-env (cmd)
Package

cmd/cmd.

Source

file-type.lisp.

Function: wrap-with-dir (dir tokens)

Wrap TOKENS with the necessary code to run the process in DIR.

The OS-level current directory is per-process, not per thread. Using ‘chdir’ could lead to race conditions. Instead, we arrange for the new process to change its own working directory.

Package

cmd/cmd.

Source

file-type.lisp.


5.2.7 Generic functions

Generic Reader: cmd-argv (object)
Package

cmd/cmd.

Methods
Reader Method: cmd-argv ((cmd cmd))

automatically generated reader method

Source

file-type.lisp.

Target Slot

argv.

Generic Reader: cmd-kwargs (object)
Package

cmd/cmd.

Methods
Reader Method: cmd-kwargs ((cmd cmd))

automatically generated reader method

Source

file-type.lisp.

Target Slot

kwargs.

Generic Writer: (setf cmd-kwargs) (object)
Package

cmd/cmd.

Methods
Writer Method: (setf cmd-kwargs) ((cmd cmd))

automatically generated writer method

Source

file-type.lisp.

Target Slot

kwargs.

Generic Function: launch-substitution (sub)

Launch a command substitution.
Should always return two values, both lists: 1. A list of new arguments for the argv. 2. A list of cleanup forms.

Package

cmd/cmd.

Source

file-type.lisp.

Methods
Method: launch-substitution ((arg psub))
Method: launch-substitution ((sub psub-echo))
Generic Reader: psub-echo-string (object)
Package

cmd/cmd.

Methods
Reader Method: psub-echo-string ((psub-echo psub-echo))

automatically generated reader method

Source

file-type.lisp.

Target Slot

string.


5.2.8 Standalone methods

Method: %constructor= ((o1 string-token) (o2 string-token))
Package

serapeum.

Source

file-type.lisp.

Method: constructor-values/generic ((x string-token))
Package

serapeum.

Source

file-type.lisp.

Method: read-only-struct-slot-names append ((self string-token))
Package

serapeum.

Source

file-type.lisp.


5.2.9 Structures

Structure: string-token
Package

cmd/cmd.

Source

file-type.lisp.

Direct superclasses

%read-only-struct.

Direct methods
Direct slots
Slot: string
Package

common-lisp.

Type

(simple-array character (*))

Initform

(alexandria:required-argument (quote string))

Readers

string-token-string.

Writers

This slot is read-only.


5.2.10 Classes

Class: substitution

A command substitution.

Package

cmd/cmd.

Source

file-type.lisp.

Direct subclasses

5.2.11 Types

Type: parseable ()
Package

cmd/cmd.

Source

file-type.lisp.

Type: redirection-operator ()
Package

cmd/cmd.

Source

file-type.lisp.

Type: subcommand-divider ()
Package

cmd/cmd.

Source

file-type.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   $   %   (  
A   C   D   E   F   G   I   K   L   M   O   P   R   S   U   V   W  
Index Entry  Section

$
$cmd: Public compiler macros
$cmd: Public ordinary functions
$sh: Public ordinary functions

%
%constructor=: Private standalone methods

(
(setf cmd-kwargs): Private generic functions
(setf cmd-kwargs): Private generic functions
(setf current-directory): Public ordinary functions
(setf subprocs): Private ordinary functions

A
argv+kwargs: Private ordinary functions
as-shell: Private ordinary functions
await: Private ordinary functions

C
call/cmd-dir: Private ordinary functions
call/stderr-file: Private ordinary functions
can-use-env-c?: Private ordinary functions
cmd: Public compiler macros
cmd: Public ordinary functions
cmd!: Public compiler macros
cmd!: Public ordinary functions
cmd&: Public compiler macros
cmd&: Public ordinary functions
cmd-argv: Private generic functions
cmd-argv: Private generic functions
cmd-env: Private ordinary functions
cmd-error-stderr: Public generic functions
cmd-error-stderr: Public generic functions
cmd-kwargs: Private generic functions
cmd-kwargs: Private generic functions
cmd?: Public compiler macros
cmd?: Public ordinary functions
cmdq: Private compiler macros
cmdq: Private ordinary functions
Compiler Macro, $cmd: Public compiler macros
Compiler Macro, cmd: Public compiler macros
Compiler Macro, cmd!: Public compiler macros
Compiler Macro, cmd&: Public compiler macros
Compiler Macro, cmd?: Public compiler macros
Compiler Macro, cmdq: Private compiler macros
Compiler Macro, psub: Public compiler macros
Compiler Macro, psub-format: Public compiler macros
constructor-values/generic: Private standalone methods
copy-string-token: Private ordinary functions
current-directory: Public ordinary functions

D
define-cmd-variant: Private macros

E
exe-string: Private ordinary functions
expand-keyword-aliases: Private ordinary functions
expand-redirection-abbrev: Private ordinary functions

F
flatten-string-tokens: Private ordinary functions
Function, $cmd: Public ordinary functions
Function, $sh: Public ordinary functions
Function, (setf current-directory): Public ordinary functions
Function, (setf subprocs): Private ordinary functions
Function, argv+kwargs: Private ordinary functions
Function, as-shell: Private ordinary functions
Function, await: Private ordinary functions
Function, call/cmd-dir: Private ordinary functions
Function, call/stderr-file: Private ordinary functions
Function, can-use-env-c?: Private ordinary functions
Function, cmd: Public ordinary functions
Function, cmd!: Public ordinary functions
Function, cmd&: Public ordinary functions
Function, cmd-env: Private ordinary functions
Function, cmd?: Public ordinary functions
Function, cmdq: Private ordinary functions
Function, copy-string-token: Private ordinary functions
Function, current-directory: Public ordinary functions
Function, exe-string: Private ordinary functions
Function, expand-keyword-aliases: Private ordinary functions
Function, expand-redirection-abbrev: Private ordinary functions
Function, flatten-string-tokens: Private ordinary functions
Function, get-stderr-output-stream-string: Private ordinary functions
Function, get-tmpfs: Private ordinary functions
Function, kill-process-group: Private ordinary functions
Function, kill-subprocs: Private ordinary functions
Function, launch-cmd: Private ordinary functions
Function, launch-pipeline: Private ordinary functions
Function, launch-program-in-dir: Private ordinary functions
Function, launch-program-in-dir*: Private ordinary functions
Function, launch-psubs: Private ordinary functions
Function, make-string-token: Private ordinary functions
Function, maybe-visual-command: Private ordinary functions
Function, mktemp: Private ordinary functions
Function, override-default-output-and-error-output: Private ordinary functions
Function, parse-cmd: Private ordinary functions
Function, parse-cmd-args: Private ordinary functions
Function, psub: Public ordinary functions
Function, psub-echo: Public ordinary functions
Function, psub-format: Public ordinary functions
Function, psub-shell: Private ordinary functions
Function, register-subproc: Private ordinary functions
Function, register-subprocs: Private ordinary functions
Function, resolve-dir: Private ordinary functions
Function, sh: Public ordinary functions
Function, sh!: Public ordinary functions
Function, sh&: Public ordinary functions
Function, sh?: Public ordinary functions
Function, shell-arg: Private ordinary functions
Function, shq: Private ordinary functions
Function, simplify-cmd-args: Private ordinary functions
Function, split-cmd: Private ordinary functions
Function, split-pipeline: Private ordinary functions
Function, stage-pipeline: Private ordinary functions
Function, string-token: Private ordinary functions
Function, string-token-string: Private ordinary functions
Function, stringify-pathname: Private ordinary functions
Function, subprocs: Private ordinary functions
Function, update-can-use-env-c: Private ordinary functions
Function, validate-env-var: Private ordinary functions
Function, visual-command-p: Private ordinary functions
Function, vterm-terminal: Public ordinary functions
Function, wrap-cmd-env: Private ordinary functions
Function, wrap-with-dir: Private ordinary functions

G
Generic Function, (setf cmd-kwargs): Private generic functions
Generic Function, cmd-argv: Private generic functions
Generic Function, cmd-error-stderr: Public generic functions
Generic Function, cmd-kwargs: Private generic functions
Generic Function, launch-substitution: Private generic functions
Generic Function, psub-echo-string: Private generic functions
get-stderr-output-stream-string: Private ordinary functions
get-tmpfs: Private ordinary functions

I
initialize-instance: Public standalone methods

K
kill-process-group: Private ordinary functions
kill-subprocs: Private ordinary functions

L
launch-cmd: Private ordinary functions
launch-pipeline: Private ordinary functions
launch-program-in-dir: Private ordinary functions
launch-program-in-dir*: Private ordinary functions
launch-psubs: Private ordinary functions
launch-substitution: Private generic functions
launch-substitution: Private generic functions
launch-substitution: Private generic functions

M
Macro, define-cmd-variant: Private macros
Macro, with-cmd-dir: Public macros
Macro, with-stderr-caching: Private macros
Macro, with-stderr-file: Private macros
Macro, with-working-directory: Public macros
make-load-form: Public standalone methods
make-string-token: Private ordinary functions
maybe-visual-command: Private ordinary functions
Method, %constructor=: Private standalone methods
Method, (setf cmd-kwargs): Private generic functions
Method, cmd-argv: Private generic functions
Method, cmd-error-stderr: Public generic functions
Method, cmd-kwargs: Private generic functions
Method, constructor-values/generic: Private standalone methods
Method, initialize-instance: Public standalone methods
Method, launch-substitution: Private generic functions
Method, launch-substitution: Private generic functions
Method, make-load-form: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, psub-echo-string: Private generic functions
Method, read-only-struct-slot-names: Private standalone methods
mktemp: Private ordinary functions

O
override-default-output-and-error-output: Private ordinary functions

P
parse-cmd: Private ordinary functions
parse-cmd-args: Private ordinary functions
print-object: Public standalone methods
print-object: Public standalone methods
psub: Public compiler macros
psub: Public ordinary functions
psub-echo: Public ordinary functions
psub-echo-string: Private generic functions
psub-echo-string: Private generic functions
psub-format: Public compiler macros
psub-format: Public ordinary functions
psub-shell: Private ordinary functions

R
read-only-struct-slot-names: Private standalone methods
register-subproc: Private ordinary functions
register-subprocs: Private ordinary functions
resolve-dir: Private ordinary functions

S
sh: Public ordinary functions
sh!: Public ordinary functions
sh&: Public ordinary functions
sh?: Public ordinary functions
shell-arg: Private ordinary functions
shq: Private ordinary functions
simplify-cmd-args: Private ordinary functions
split-cmd: Private ordinary functions
split-pipeline: Private ordinary functions
stage-pipeline: Private ordinary functions
string-token: Private ordinary functions
string-token-string: Private ordinary functions
stringify-pathname: Private ordinary functions
subprocs: Private ordinary functions

U
update-can-use-env-c: Private ordinary functions

V
validate-env-var: Private ordinary functions
visual-command-p: Private ordinary functions
vterm-terminal: Public ordinary functions

W
with-cmd-dir: Public macros
with-stderr-caching: Private macros
with-stderr-file: Private macros
with-working-directory: Public macros
wrap-cmd-env: Private ordinary functions
wrap-with-dir: Private ordinary functions


A.3 Variables

Jump to:   *   +  
A   C   K   S  
Index Entry  Section

*
*can-use-env-c*: Private special variables
*cmd-env*: Public special variables
*cmd-path*: Public special variables
*command-wrappers*: Public special variables
*message-hook*: Public special variables
*null-error-output*: Public special variables
*null-output*: Public special variables
*proc-hook*: Public special variables
*shell*: Public special variables
*subprocs*: Private special variables
*terminal*: Public special variables
*visual-commands*: Public special variables

+
+dividers+: Private symbol macros
+env+: Private symbol macros
+kill+: Private symbol macros
+ps+: Private symbol macros
+pwd+: Private symbol macros
+redirection-operators+: Private symbol macros
+sh+: Private symbol macros
+storage-for-deflex-var-+redirection-operators++: Private constants
+storage-for-deflex-var-+subcommand-dividers++: Private constants
+subcommand-dividers+: Private symbol macros
+tr+: Private symbol macros

A
argv: Public classes

C
Constant, +storage-for-deflex-var-+redirection-operators++: Private constants
Constant, +storage-for-deflex-var-+subcommand-dividers++: Private constants

K
kwargs: Public classes

S
Slot, argv: Public classes
Slot, kwargs: Public classes
Slot, stderr: Public conditions
Slot, string: Public classes
Slot, string: Private structures
Special Variable, *can-use-env-c*: Private special variables
Special Variable, *cmd-env*: Public special variables
Special Variable, *cmd-path*: Public special variables
Special Variable, *command-wrappers*: Public special variables
Special Variable, *message-hook*: Public special variables
Special Variable, *null-error-output*: Public special variables
Special Variable, *null-output*: Public special variables
Special Variable, *proc-hook*: Public special variables
Special Variable, *shell*: Public special variables
Special Variable, *subprocs*: Private special variables
Special Variable, *terminal*: Public special variables
Special Variable, *visual-commands*: Public special variables
stderr: Public conditions
string: Public classes
string: Private structures
Symbol Macro, +dividers+: Private symbol macros
Symbol Macro, +env+: Private symbol macros
Symbol Macro, +kill+: Private symbol macros
Symbol Macro, +ps+: Private symbol macros
Symbol Macro, +pwd+: Private symbol macros
Symbol Macro, +redirection-operators+: Private symbol macros
Symbol Macro, +sh+: Private symbol macros
Symbol Macro, +subcommand-dividers+: Private symbol macros
Symbol Macro, +tr+: Private symbol macros