app

package
v1.110.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2026 License: Apache-2.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UndefinedShutdownTimeoutSec = 0
	DefaultShutdownTimeoutSec   = 10
	EnvReplicaNum               = "PC_REPLICA_NUM"
	LogReplicaNum               = "{" + EnvReplicaNum + "}"
)

Variables

This section is empty.

Functions

func HumanDuration added in v1.46.0

func HumanDuration(d time.Duration) string

HumanDuration returns a succinct representation of the provided duration with limited precision for consumption by humans. It provides ~2-3 significant figures of duration.

func PrintStatesAsTable added in v1.63.0

func PrintStatesAsTable(states []types.ProcessState)

Print a list of process states in a table.

Types

type ExitError added in v1.9.0

type ExitError struct {
	Code int
}

func (*ExitError) Error added in v1.9.0

func (e *ExitError) Error() string

type IProject added in v0.50.0

type IProject interface {
	ShutDownProject() error
	IsRemote() bool
	ErrorForSecs() int
	GetProjectName() (string, error)
	GetProjectState(checkMem bool) (*types.ProjectState, error)

	GetLogLength() int
	GetLogsAndSubscribe(name string, observer pclog.LogObserver) error
	UnSubscribeLogger(name string, observer pclog.LogObserver) error
	GetProcessLog(name string, offsetFromEnd, limit int) ([]string, error)

	GetLexicographicProcessNames() ([]string, error)
	GetProcessInfo(name string) (*types.ProcessConfig, error)
	GetProcessState(name string) (*types.ProcessState, error)
	GetProcessesState() (*types.ProcessesState, error)
	StopProcess(name string) error
	SendSignal(name string, sig int) error
	StopProcesses(names []string) (map[string]string, error)
	StartNamespace(namespace string) error
	StopNamespace(namespace string) error
	RestartNamespace(namespace string) error
	GetNamespaces() ([]string, error)
	StartProcess(name string) error
	RestartProcess(name string) error
	ScaleProcess(name string, scale int) error
	GetProcessPorts(name string) (*types.ProcessPorts, error)
	SetProcessPassword(name string, password string) error
	UpdateProject(project *types.Project) (map[string]string, error)
	UpdateProcess(updated *types.ProcessConfig) error
	ReloadProject() (map[string]string, error)
	TruncateProcessLogs(name string) error
	GetProcessPty(name string) *os.File
	GetFullProcessEnvironment(proc *types.ProcessConfig) []string
	GetDependencyGraph() (*types.DependencyGraph, error)

	RegisterStateObserver(observer types.StateObserver)
	UnregisterStateObserver(observer types.StateObserver)
}

IProject holds all the functions from the project struct that are being consumed by the tui package

type ProcOpts added in v1.9.0

type ProcOpts func(*Process)

type Process

type Process struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewProcess

func NewProcess(opts ...ProcOpts) *Process

func (*Process) GetPty added in v1.85.0

func (p *Process) GetPty() *os.File

type ProcessStateBroadcaster added in v1.110.0

type ProcessStateBroadcaster struct {
	// contains filtered or unexported fields
}

ProcessStateBroadcaster fans out ProcessStateEvent values to subscribed observers. It mirrors the pclog.ProcessLogBuffer subscribe/fanout pattern.

The StateObserver contract lives in the types package so consumers (api, client, tui) can implement it without importing app.

func NewProcessStateBroadcaster added in v1.110.0

func NewProcessStateBroadcaster(snapshot SnapshotFunc) *ProcessStateBroadcaster

NewProcessStateBroadcaster constructs a broadcaster. The snapshot func is called under the broadcaster's lock during SubscribeWithSnapshot to deliver the initial state of all processes; pass nil to disable snapshotting.

func (*ProcessStateBroadcaster) Close added in v1.110.0

func (b *ProcessStateBroadcaster) Close()

Close drops all subscribers.

func (*ProcessStateBroadcaster) Publish added in v1.110.0

Publish delivers the event to all current subscribers synchronously.

func (*ProcessStateBroadcaster) Subscribe added in v1.110.0

Subscribe registers an observer for future events only.

func (*ProcessStateBroadcaster) SubscribeWithSnapshot added in v1.110.0

func (b *ProcessStateBroadcaster) SubscribeWithSnapshot(o types.StateObserver)

SubscribeWithSnapshot delivers a snapshot event for every current process, then registers the observer. Both happen under one lock so no live events can sneak in between the snapshot and the subscription.

func (*ProcessStateBroadcaster) Unsubscribe added in v1.110.0

func (b *ProcessStateBroadcaster) Unsubscribe(o types.StateObserver)

Unsubscribe removes an observer. Safe to call multiple times.

type ProcessTree added in v1.85.0

type ProcessTree struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewProcessTree added in v1.85.0

func NewProcessTree(cacheTTL time.Duration) *ProcessTree

func (*ProcessTree) GetDescendants added in v1.85.0

func (pt *ProcessTree) GetDescendants(pid int32) []*puproc.Process

func (*ProcessTree) Update added in v1.85.0

func (pt *ProcessTree) Update() error

type ProjectOpts added in v0.77.4

type ProjectOpts struct {
	// contains filtered or unexported fields
}

func (*ProjectOpts) WithDotEnvDisabled added in v1.34.0

func (p *ProjectOpts) WithDotEnvDisabled(disabled bool) *ProjectOpts

func (*ProjectOpts) WithIsTuiOn added in v0.77.4

func (p *ProjectOpts) WithIsTuiOn(isTuiOn bool) *ProjectOpts

func (*ProjectOpts) WithLogTruncate added in v1.63.0

func (p *ProjectOpts) WithLogTruncate(truncateLogs bool) *ProjectOpts

func (*ProjectOpts) WithMainProcess added in v0.77.4

func (p *ProjectOpts) WithMainProcess(mainProcess string) *ProjectOpts

func (*ProjectOpts) WithMainProcessArgs added in v0.77.4

func (p *ProjectOpts) WithMainProcessArgs(mainProcessArgs []string) *ProjectOpts

func (*ProjectOpts) WithNoDeps added in v0.77.4

func (p *ProjectOpts) WithNoDeps(noDeps bool) *ProjectOpts

func (*ProjectOpts) WithOrderedShutdown added in v1.73.0

func (p *ProjectOpts) WithOrderedShutdown(isOrderedShutdown bool) *ProjectOpts

func (*ProjectOpts) WithProcessesToRun added in v0.77.4

func (p *ProjectOpts) WithProcessesToRun(processesToRun []string) *ProjectOpts

func (*ProjectOpts) WithProject added in v0.77.4

func (p *ProjectOpts) WithProject(project *types.Project) *ProjectOpts

func (*ProjectOpts) WithRecursiveMetrics added in v1.73.0

func (p *ProjectOpts) WithRecursiveMetrics(withRecursiveMetrics bool) *ProjectOpts

func (*ProjectOpts) WithSlowRefRate added in v1.64.1

func (p *ProjectOpts) WithSlowRefRate(refRate time.Duration) *ProjectOpts

type ProjectRunner added in v0.40.0

type ProjectRunner struct {
	// contains filtered or unexported fields
}

func NewProjectRunner added in v0.40.0

func NewProjectRunner(opts *ProjectOpts) (*ProjectRunner, error)

func (*ProjectRunner) ErrorForSecs added in v0.50.0

func (p *ProjectRunner) ErrorForSecs() int

func (*ProjectRunner) GetDependenciesOrderNames added in v0.40.0

func (p *ProjectRunner) GetDependenciesOrderNames() ([]string, error)

GetDependenciesOrderNames used for testing

func (*ProjectRunner) GetDependencyGraph added in v1.87.0

func (p *ProjectRunner) GetDependencyGraph() (*types.DependencyGraph, error)

GetDependencyGraph builds and returns the process dependency graph with current status

func (*ProjectRunner) GetFullProcessEnvironment added in v1.87.0

func (p *ProjectRunner) GetFullProcessEnvironment(proc *types.ProcessConfig) []string

func (*ProjectRunner) GetLexicographicProcessNames added in v0.50.0

func (p *ProjectRunner) GetLexicographicProcessNames() ([]string, error)

func (*ProjectRunner) GetLogLength added in v0.40.0

func (p *ProjectRunner) GetLogLength() int

func (*ProjectRunner) GetLogsAndSubscribe added in v0.40.0

func (p *ProjectRunner) GetLogsAndSubscribe(name string, observer pclog.LogObserver) error

func (*ProjectRunner) GetNamespaces added in v1.90.0

func (p *ProjectRunner) GetNamespaces() ([]string, error)

func (*ProjectRunner) GetProcessInfo added in v0.40.0

func (p *ProjectRunner) GetProcessInfo(name string) (*types.ProcessConfig, error)

func (*ProjectRunner) GetProcessLog added in v0.40.0

func (p *ProjectRunner) GetProcessLog(name string, offsetFromEnd, limit int) ([]string, error)

func (*ProjectRunner) GetProcessLogLength added in v0.40.0

func (p *ProjectRunner) GetProcessLogLength(name string) int

func (*ProjectRunner) GetProcessPorts added in v0.55.0

func (p *ProjectRunner) GetProcessPorts(name string) (*types.ProcessPorts, error)

func (*ProjectRunner) GetProcessPty added in v1.85.0

func (p *ProjectRunner) GetProcessPty(name string) *os.File

func (*ProjectRunner) GetProcessState added in v0.40.0

func (p *ProjectRunner) GetProcessState(name string) (*types.ProcessState, error)

func (*ProjectRunner) GetProcessesState added in v0.50.0

func (p *ProjectRunner) GetProcessesState() (*types.ProcessesState, error)

func (*ProjectRunner) GetProjectName added in v1.73.0

func (p *ProjectRunner) GetProjectName() (string, error)

func (*ProjectRunner) GetProjectState added in v0.75.0

func (p *ProjectRunner) GetProjectState(checkMem bool) (*types.ProjectState, error)

func (*ProjectRunner) IsRemote added in v0.50.0

func (p *ProjectRunner) IsRemote() bool

func (*ProjectRunner) RegisterStateObserver added in v1.110.0

func (p *ProjectRunner) RegisterStateObserver(o types.StateObserver)

RegisterStateObserver registers an observer that receives an initial snapshot of every process followed by every state change.

func (*ProjectRunner) ReloadProject added in v1.34.0

func (p *ProjectRunner) ReloadProject() (map[string]string, error)

func (*ProjectRunner) RestartNamespace added in v1.90.0

func (p *ProjectRunner) RestartNamespace(namespace string) error

func (*ProjectRunner) RestartProcess added in v0.40.0

func (p *ProjectRunner) RestartProcess(name string) error

func (*ProjectRunner) Run added in v0.40.0

func (p *ProjectRunner) Run() error

func (*ProjectRunner) ScaleProcess added in v0.55.0

func (p *ProjectRunner) ScaleProcess(name string, scale int) error

func (*ProjectRunner) SendSignal added in v1.100.0

func (p *ProjectRunner) SendSignal(name string, sig int) error

func (*ProjectRunner) SetProcessInfo added in v1.94.0

func (p *ProjectRunner) SetProcessInfo(config *types.ProcessConfig) error

func (*ProjectRunner) SetProcessPassword added in v1.9.0

func (p *ProjectRunner) SetProcessPassword(name, pass string) error

func (*ProjectRunner) ShutDownProject added in v0.40.0

func (p *ProjectRunner) ShutDownProject() error

func (*ProjectRunner) StartNamespace added in v1.90.0

func (p *ProjectRunner) StartNamespace(namespace string) error

func (*ProjectRunner) StartProcess added in v0.40.0

func (p *ProjectRunner) StartProcess(name string) error

func (*ProjectRunner) StopNamespace added in v1.90.0

func (p *ProjectRunner) StopNamespace(namespace string) error

func (*ProjectRunner) StopProcess added in v0.40.0

func (p *ProjectRunner) StopProcess(name string) error

func (*ProjectRunner) StopProcesses added in v0.60.0

func (p *ProjectRunner) StopProcesses(names []string) (map[string]string, error)

func (*ProjectRunner) TruncateProcessLogs added in v1.63.0

func (p *ProjectRunner) TruncateProcessLogs(name string) error

func (*ProjectRunner) UnSubscribeLogger added in v0.40.0

func (p *ProjectRunner) UnSubscribeLogger(name string, observer pclog.LogObserver) error

func (*ProjectRunner) UnregisterStateObserver added in v1.110.0

func (p *ProjectRunner) UnregisterStateObserver(o types.StateObserver)

UnregisterStateObserver stops delivery to the given observer.

func (*ProjectRunner) UpdateProcess added in v1.34.0

func (p *ProjectRunner) UpdateProcess(updated *types.ProcessConfig) error

func (*ProjectRunner) UpdateProject added in v1.27.0

func (p *ProjectRunner) UpdateProject(project *types.Project) (map[string]string, error)

func (*ProjectRunner) WaitForProjectShutdown added in v1.18.0

func (p *ProjectRunner) WaitForProjectShutdown()

type RestartCall added in v1.73.0

type RestartCall struct {
	// contains filtered or unexported fields
}

RestartCall represents an in-flight restart operation

type SnapshotFunc added in v1.110.0

type SnapshotFunc func() []types.ProcessState

SnapshotFunc returns the current state of all processes for the initial replay on subscribe.

type StatePublisher added in v1.110.0

type StatePublisher func(ev types.ProcessStateEvent)

StatePublisher is invoked from Process whenever the observable state of the process changes. It is supplied by the owner (typically ProjectRunner) and may be nil — Process treats that as a no-op.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL