github.com/zyedidia/knit@v1.1.2-0.20230901152954-f7d4e39a0e24/shell/shell.go (about)

     1  package shell
     2  
     3  import (
     4  	"context"
     5  	"os"
     6  	"strings"
     7  
     8  	"mvdan.cc/sh/interp"
     9  	"mvdan.cc/sh/syntax"
    10  )
    11  
    12  func Run(cmd string) error {
    13  	r, err := interp.New(interp.StdIO(os.Stdin, os.Stdout, os.Stderr))
    14  	if err != nil {
    15  		return err
    16  	}
    17  
    18  	prog, err := syntax.NewParser().Parse(strings.NewReader(cmd), "")
    19  	if err != nil {
    20  		return err
    21  	}
    22  	r.Reset()
    23  	ctx := context.Background()
    24  	return r.Run(ctx, prog)
    25  }