pkg modules, func DefaultStartOpts() StartOpts
pkg modules, func Dispatch() error
pkg modules, func DispatchAndExit()
pkg modules, func Help(string) string
pkg modules, func IsModulesChildProcess() bool
pkg modules, func NewShell(*context.T, security.Principal, bool, expect.Testing) (*Shell, error)
pkg modules, func RegisterChild(string, string, Main)
pkg modules, func RegisterFunction(string, string, Main)
pkg modules, func SetEntryPoint(map[string]string, string) []string
pkg modules, func Usage(*flag.FlagSet) string
pkg modules, func WaitForEOF(io.Reader)
pkg modules, method (*CustomCredentials) File() (*os.File, error)
pkg modules, method (*CustomCredentials) Principal() security.Principal
pkg modules, method (*Shell) Cleanup(io.Writer, io.Writer) error
pkg modules, method (*Shell) ClearConfigKey(string)
pkg modules, method (*Shell) ClearVar(string)
pkg modules, method (*Shell) CommandEnvelope(string, []string, ...string) ([]string, []string)
pkg modules, method (*Shell) DefaultStartOpts() StartOpts
pkg modules, method (*Shell) Env() []string
pkg modules, method (*Shell) Forget(Handle)
pkg modules, method (*Shell) GetConfigKey(string) (string, bool)
pkg modules, method (*Shell) GetVar(string) (string, bool)
pkg modules, method (*Shell) Help(string) string
pkg modules, method (*Shell) NewChildCredentials(string, ...security.Caveat) (*CustomCredentials, error)
pkg modules, method (*Shell) NewCustomCredentials() (*CustomCredentials, error)
pkg modules, method (*Shell) SetConfigKey(string, string)
pkg modules, method (*Shell) SetDefaultStartOpts(StartOpts)
pkg modules, method (*Shell) SetVar(string, string)
pkg modules, method (*Shell) Start(string, []string, ...string) (Handle, error)
pkg modules, method (*Shell) StartWithOpts(StartOpts, []string, string, ...string) (Handle, error)
pkg modules, method (*Shell) String() string
pkg modules, method (StartOpts) ExternalCommand() StartOpts
pkg modules, method (StartOpts) NoExecCommand() StartOpts
pkg modules, method (StartOpts) WithCustomCredentials(*CustomCredentials) StartOpts
pkg modules, method (StartOpts) WithSessions(expect.Testing, time.Duration) StartOpts
pkg modules, method (StartOpts) WithStdin(io.Reader) StartOpts
pkg modules, type CustomCredentials struct
pkg modules, type ExpectSession interface { Error, Expect, ExpectEOF, ExpectRE, ExpectSetEventuallyRE, ExpectSetRE, ExpectVar, Expectf, Failed, ReadAll, ReadLine, SetVerbosity }
pkg modules, type ExpectSession interface, Error() error
pkg modules, type ExpectSession interface, Expect(string)
pkg modules, type ExpectSession interface, ExpectEOF() error
pkg modules, type ExpectSession interface, ExpectRE(string, int) [][]string
pkg modules, type ExpectSession interface, ExpectSetEventuallyRE(...string) [][]string
pkg modules, type ExpectSession interface, ExpectSetRE(...string) [][]string
pkg modules, type ExpectSession interface, ExpectVar(string) string
pkg modules, type ExpectSession interface, Expectf(string, ...interface{})
pkg modules, type ExpectSession interface, Failed() bool
pkg modules, type ExpectSession interface, ReadAll() (string, error)
pkg modules, type ExpectSession interface, ReadLine() string
pkg modules, type ExpectSession interface, SetVerbosity(bool)
pkg modules, type Handle interface { CloseStdin, Error, Expect, ExpectEOF, ExpectRE, ExpectSetEventuallyRE, ExpectSetRE, ExpectVar, Expectf, Failed, Pid, ReadAll, ReadLine, SetVerbosity, Shutdown, Stderr, Stdin, Stdout }
pkg modules, type Handle interface, CloseStdin()
pkg modules, type Handle interface, Error() error
pkg modules, type Handle interface, Expect(string)
pkg modules, type Handle interface, ExpectEOF() error
pkg modules, type Handle interface, ExpectRE(string, int) [][]string
pkg modules, type Handle interface, ExpectSetEventuallyRE(...string) [][]string
pkg modules, type Handle interface, ExpectSetRE(...string) [][]string
pkg modules, type Handle interface, ExpectVar(string) string
pkg modules, type Handle interface, Expectf(string, ...interface{})
pkg modules, type Handle interface, Failed() bool
pkg modules, type Handle interface, Pid() int
pkg modules, type Handle interface, ReadAll() (string, error)
pkg modules, type Handle interface, ReadLine() string
pkg modules, type Handle interface, SetVerbosity(bool)
pkg modules, type Handle interface, Shutdown(io.Writer, io.Writer) error
pkg modules, type Handle interface, Stderr() io.Reader
pkg modules, type Handle interface, Stdin() io.Writer
pkg modules, type Handle interface, Stdout() io.Reader
pkg modules, type Main func(stdin io.Reader, stdout, stderr io.Writer, env map[string]string, args ...string) error
pkg modules, type Shell struct
pkg modules, type StartOpts struct
pkg modules, type StartOpts struct, Credentials *CustomCredentials
pkg modules, type StartOpts struct, Error error
pkg modules, type StartOpts struct, ExecProtocol bool
pkg modules, type StartOpts struct, ExpectTesting expect.Testing
pkg modules, type StartOpts struct, ExpectTimeout time.Duration
pkg modules, type StartOpts struct, External bool
pkg modules, type StartOpts struct, ShutdownTimeout time.Duration
pkg modules, type StartOpts struct, StartTimeout time.Duration
pkg modules, type StartOpts struct, Stdin io.Reader
pkg modules, var ErrNoExecAndCustomCreds error
pkg modules, var ErrNotRegistered error
