MCPcopy Create free account
hub / github.com/Sifchain/sifnode / shellExecInput

Method shellExecInput

tools/sifgen/utils/cli.go:243–284  ·  view source on GitHub ↗
(cmd string, inputs [][]byte, args ...string)

Source from the content-addressed store, hash-verified

241}
242
243func (c CLI) shellExecInput(cmd string, inputs [][]byte, args ...string) (*string, error) {
244 cm := exec.Command(cmd, args...)
245 var stderr bytes.Buffer
246 cm.Stderr = &stderr
247
248 stdin, err := cm.StdinPipe()
249 if err != nil {
250 return nil, err
251 }
252
253 stdout, err := cm.StdoutPipe()
254 if err != nil {
255 return nil, err
256 }
257
258 buf := bytes.NewBuffer(nil)
259 go func() {
260 _, err := io.Copy(buf, stdout)
261 if err != nil {
262 log.Println("io.Copy failed: ", err.Error())
263 }
264 }()
265
266 if err := cm.Start(); err != nil {
267 panic(err)
268 }
269
270 for _, i := range inputs {
271 _, err := stdin.Write(i)
272 if err != nil {
273 log.Println("Write failed: ", err.Error())
274 }
275 }
276
277 if err := cm.Wait(); err != nil {
278 fmt.Println(stderr.String())
279 return nil, err
280 }
281
282 result := buf.String()
283 return &result, nil
284}

Callers 4

AddKeyMethod · 0.95
GenerateGenesisTxnMethod · 0.95
TransferFundsMethod · 0.95
CreateValidatorMethod · 0.95

Calls 3

ErrorMethod · 0.45
StartMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected