| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package executor
- import (
- "fmt"
- schemepkg "git.buran.team/main/cep/scheme"
- )
- type Result struct {
- Code int
- StdoutProcessors []Processor
- StderrProcessors []Processor
- }
- func NewResult(resultScheme schemepkg.Result) (*Result, error) {
- stdoutProcessors := []Processor{}
- if resultScheme.Stdout != nil {
- for _, processorScheme := range resultScheme.Stdout {
- processor, err := NewProcessor(processorScheme)
- if err != nil {
- return nil, fmt.Errorf("can't create result: %w", err)
- }
- stdoutProcessors = append(stdoutProcessors, processor)
- }
- }
- stderrProcessors := []Processor{}
- if resultScheme.Stderr != nil {
- for _, processorScheme := range resultScheme.Stderr {
- processor, err := NewProcessor(processorScheme)
- if err != nil {
- return nil, fmt.Errorf("can't create result: %w", err)
- }
- stderrProcessors = append(stderrProcessors, processor)
- }
- }
- return &Result{
- Code: resultScheme.Code,
- StdoutProcessors: stdoutProcessors,
- StderrProcessors: stderrProcessors,
- }, nil
- }
- func (this *Result) Check(code int, stdout []byte, stderr []byte) bool {
- if code != this.Code {
- return false
- }
- for _, processor := range this.StdoutProcessors {
- if !processor.Process(stdout) {
- return false
- }
- }
- for _, processor := range this.StderrProcessors {
- if !processor.Process(stderr) {
- return false
- }
- }
- return true
- }
|