...

Source file src/edge-infra.dev/pkg/sds/display/displaymanager/applier/xorg/command/runner/runner.go

Documentation: edge-infra.dev/pkg/sds/display/displaymanager/applier/xorg/command/runner

     1  package runner
     2  
     3  import (
     4  	"fmt"
     5  	"os/exec"
     6  )
     7  
     8  // Runner takes a command with a set of arguments and runs them,
     9  // returning an error.
    10  type Runner interface {
    11  	// Run runs the given command with arguments, returning an error.
    12  	Run(cmdPath string, args ...string) error
    13  }
    14  
    15  type cmdRunner struct{}
    16  
    17  // NewCommandRunner returns a runner which runs commands inside
    18  // the container using os/exec.
    19  func NewCommandRunner() Runner {
    20  	return &cmdRunner{}
    21  }
    22  
    23  func (*cmdRunner) Run(cmdPath string, args ...string) error {
    24  	cmd := exec.Command(cmdPath, args...)
    25  
    26  	output, err := cmd.CombinedOutput()
    27  	if err != nil {
    28  		return fmt.Errorf("%s: %w", output, err)
    29  	}
    30  
    31  	return nil
    32  }
    33  

View as plain text