execs

package module
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2022 License: MIT Imports: 14 Imported by: 1

README

execs

commands and runners executors

Documentation

Overview

Package execs функционал для работы с командами оболочки, запуск процессов и так далее

nolint: dupl

nolint: dupl

Index

Constants

View Source
const (
	// InvalidExitCode - код возврата процесса "выход с ошибкой"
	InvalidExitCode = 254

	// ExitCodePrefix - префикс кода возвращаемого процессом
	ExitCodePrefix = 128
)

Variables

This section is empty.

Functions

func Eval

func Eval(expr string) (string, error)

Eval - вычислить произвольное выражение в оболочке

func InterruptHandler

func InterruptHandler(ctx context.Context, handles ...func()) context.Context

InterruptHandler - запускает обработчик сигналов прерывания программы и возвращает контекст с синхронизацией завершения работы

func NewCommand

func NewCommand(path string, command Command) *exec.Cmd

NewCommand - конструктор команды оболочки nolint

func Result

func Result(name string, command Command, writers ...io.Writer) (string, error)

Result - возвращает результат выполнения команды оболочки из stdout ctx обязан содержать zap.Logger

func Run

func Run(name string, command Command, writers ...io.Writer) error

Run - запускает команду оболочки с ожиданием выполнения

Types

type BufferProvider

type BufferProvider interface {
	Buffer() *iorw.Buffer
}

BufferProvider - буферизируемый объект

type Command

type Command interface {
	Args() []string
	SessionName() string
}

Command - инерфейс команды системной командной оболочки

type Enverer

type Enverer interface {
	Env() []string
}

Enverer - интерфейс объектов использующих переменные окружения

type ErrorTrace added in v1.0.2

type ErrorTrace []ExitEvent

ErrorTrace трассировка ошибок завершений процессов

func (ErrorTrace) Error added in v1.0.2

func (trace ErrorTrace) Error() string

func (ErrorTrace) ErrorOrNil added in v1.0.2

func (trace ErrorTrace) ErrorOrNil() error

type EvalCmd

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

EvalCmd - команда выполнения произвольного выражения в оболочке

func (*EvalCmd) Args

func (cmd *EvalCmd) Args() []string

Args - аргументы команды

func (*EvalCmd) SessionName

func (*EvalCmd) SessionName() string

SessionName - имя запускаемой сессии оболочки

type ExitEvent added in v1.0.2

type ExitEvent struct {
	Member Member
	Err    error
}

ExitEvent - событие завершения процесса раннера

type Exiter

type Exiter interface {
	ExitCode() int
}

Exiter - завершаемый объект

type Member added in v1.0.2

type Member struct {
	Name string
	Runner
}

Member реализация участника группы раннеров

type Members added in v1.0.2

type Members []Member

Members группа раннеров

type PrefixedWriter

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

PrefixedWriter - io.Writer с префексированным выводом

func NewPrefixedWriter

func NewPrefixedWriter(prefix string, writer io.Writer) *PrefixedWriter

NewPrefixedWriter - конструктор префексированного io.Writer

func (*PrefixedWriter) Write

func (w *PrefixedWriter) Write(b []byte) (int, error)

type Process added in v1.0.2

type Process interface {
	// Ready синхронизация готовности процесса
	Ready() <-chan struct{}
	// Wait синхронизация завершения процесса
	Wait() <-chan error
	// Signal отправка системного сигнала процессу
	Signal(os.Signal)
}

Process интерфейс процесса

func Background added in v1.0.2

func Background(r Runner) Process

Background - конструтор процесса запущенного в бэкграутнд моде

func Start

func Start(r Runner) Process

Start - конструктор процесса

type RunFunc

type RunFunc func(signals <-chan os.Signal, ready chan<- struct{}) error

RunFunc - функция стартер

func (RunFunc) Run

func (r RunFunc) Run(signals <-chan os.Signal, ready chan<- struct{}) error

Run - хэндлер функции стартера

type Runner

type Runner interface {
	// Run хэндлер функции стартера
	Run(signals <-chan os.Signal, ready chan<- struct{}) error
}

Runner - стартер управляемого метода, объекта либо груупы таковых

func NewOrdered added in v1.0.2

func NewOrdered(members ...Member) Runner

NewOrdered - конструктор группы последовательного запуска раннеров

func NewParallel added in v1.0.2

func NewParallel(members ...Member) Runner

NewParallel конструктор параллельного запуска раннеров группы

type Session

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

Session - враппер для запуска и управления процессом командной оболочки

func StartCmd added in v1.0.2

func StartCmd(cmd *exec.Cmd, writers ...io.Writer) (*Session, error)

StartCmd - запускает команду оболочки завернутую в управляющую обертку

func (*Session) Buffer

func (s *Session) Buffer() *iorw.Buffer

Buffer - возвращает буфер вывода процесса сессии

func (*Session) ErrLog

func (s *Session) ErrLog() <-chan error

ErrLog - возвращает канал в который отправляются ошибки времени выполнения, можно использовать в логере

func (*Session) ExitCode

func (s *Session) ExitCode() int

ExitCode - возвращает код возврата процесса

func (*Session) Interrupt

func (s *Session) Interrupt() *Session

Interrupt - посылает системный сигнал `kill -2` процессу

func (*Session) Kill

func (s *Session) Kill() *Session

Kill - посылает системный сигнал `kill -9` процессу

func (*Session) Signal

func (s *Session) Signal(signal os.Signal) *Session

Signal - посылает произвольный сигнал процессу

func (*Session) Terminate

func (s *Session) Terminate() *Session

Terminate - посылает системный сигнал `kill -15` процессу

func (*Session) Wait

func (s *Session) Wait(timeout ...interface{}) *Session

Wait - ожидает завершения процесса

type WorkingDirer

type WorkingDirer interface {
	WorkingDir() string
}

WorkingDirer - интерфейс объектов использующих рабочую директорию

Jump to

Keyboard shortcuts

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