Versions in this module Expand all Collapse all v0 v0.1.3 Feb 23, 2020 Changes in this version + const BodyBoxTopPad + const DefaultCmdTimeout + const DefaultCooldown + const DefaultDebounce + const DetailListMaxLen + const DetailMiscPos + const DetailStderrPos + const DetailStdoutPos + const ExecRequestQueueTick + const ListItemWidgetPad + const StatusListMaxLen + func FinalizeConfig(all []*Target, c *Config) error + func GetGlobInclude(globs []cage_filepath.GlobAnyOutput) (paths map[string]cage_filepath.Glob, err error) + func GetTargetGlob(include []cage_filepath.Glob, exclude []cage_filepath.Glob) (list []cage_filepath.GlobAnyOutput, err error) + func VisitDownstream(t *Target, visit func(t *Target) error) (err error) + type CmdTemplateData struct + Dir string + HandlerLabel string + IncludeGlob string + IncludeRoot string + Path string + TargetLabel string + type Config struct + AutoStartTarget []string + Data DataConfig + Global GlobalConfig + Target []Target + Template map[string]string + func ReadConfigFile(name string) (c Config, err error) + func (c *Config) GetStartTarget() (t []Target) + type DataConfig struct + Session SessionConfig + type Dispatcher struct + Clock cage_time.Clock + Cooldown time.Duration + ExecReqCh chan ExecRequest + Executor cage_exec.Executor + Log *zap.Logger + TargetFailCh chan Status + TargetPassCh chan TargetPass + TargetStartCh chan Status + TreePassCh chan TreePass + func NewDispatcher(log *zap.Logger, targets []Target, panicCh chan interface{}, ...) (*Dispatcher, error) + func (d *Dispatcher) Start() + func (d *Dispatcher) Stop() + type Exec struct + Cmd string + Dir string + Env []string + Timeout string + func (e Exec) GetTimeout() time.Duration + type ExecRequest struct + Cause string + Debounce time.Duration + Event watcher.Event + Include cage_filepath.Glob + RecvTime time.Time + TargetId string + TargetLabel string + Tree []TargetTree + type GlobalConfig struct + Cooldown string + Exclude []cage_filepath.Glob + func (c GlobalConfig) GetCooldown() time.Duration + type Handler struct + Exec []Exec + Label string + type ListItemWidget struct + Body *tview.TextView + Container *tview.Flex + Header *tview.TextView + func NewListItemWidget() *ListItemWidget + type Session struct + Statuses []Status + Version int + type SessionConfig struct + File string + type Status struct + Cause TargetStatus + Cmd string + Downstream []string + EndTime time.Time + Err string + HandlerLabel string + Include cage_filepath.Glob + Op string + Path string + Pid []int + RunLen time.Duration + StartTime time.Time + Stderr string + Stdout string + TargetId string + TargetLabel string + UpstreamTargetLabel string + type Target struct + Debounce string + Downstream []*Target + Exclude []cage_filepath.Glob + Handler []Handler + Id string + Include []cage_filepath.Glob + Label string + Root string + Tree []TargetTree + Upstream []string + func (t *Target) ContainsDownstream(targetId string) (found bool) + func (t *Target) ExpandTemplateVars(data map[string]string) error + func (t *Target) MatchPath(name string) (cage_filepath.MatchAnyOutput, error) + func (t Target) GetDebounce() time.Duration + type TargetContext struct + Cancel context.CancelFunc + Ctx context.Context + type TargetPass struct + RunLen time.Duration + TargetId string + type TargetStatus string + const PreDebounce + const SessionVersion + const TargetCanceled + const TargetFailed + const TargetPending + const TargetResumed + const TargetStarted + type TargetTree struct + Handler []Handler + Id string + Label string + type TreePass struct + DispatchTargetId string + type UI struct + func NewUI(log *zap.Logger, targetStartCh chan Status, targetPassCh chan TargetPass, ...) *UI + func (u *UI) ExitCh() <-chan struct{} + func (u *UI) Init() + func (u *UI) InputCapture(event *tcell.EventKey) *tcell.EventKey + func (u *UI) SessionCh() <-chan Session + func (u *UI) Start() error + func (u *UI) Stop() + type Watcher struct + AddPathCh chan<- string + ExecReqCh chan<- ExecRequest + Log *zap.Logger + PanicCh chan<- interface{} + Target Target + func (w *Watcher) Error(err error) + func (w *Watcher) Event(event watcher.Event) + func (w *Watcher) SetInclude(i map[string]cage_filepath.Glob)