MCPcopy Index your code
hub / github.com/yuin/gopher-lua / newProcess

Function newProcess

iolib.go:86–111  ·  view source on GitHub ↗
(L *LState, cmd string, writable, readable bool)

Source from the content-addressed store, hash-verified

84}
85
86func newProcess(L *LState, cmd string, writable, readable bool) (*LUserData, error) {
87 ud := L.NewUserData()
88 c, args := popenArgs(cmd)
89 pp := exec.Command(c, args...)
90 lfile := &lFile{fp: nil, pp: pp, writer: nil, reader: nil, stdout: nil, closed: false}
91 ud.Value = lfile
92
93 var err error
94 if writable {
95 lfile.writer, err = pp.StdinPipe()
96 }
97 if readable {
98 lfile.stdout, err = pp.StdoutPipe()
99 lfile.reader = bufio.NewReaderSize(lfile.stdout, fileDefaultReadBuffer)
100 }
101 if err != nil {
102 return nil, err
103 }
104 err = pp.Start()
105 if err != nil {
106 return nil, err
107 }
108
109 L.SetMetatable(ud, L.GetTypeMetatable(lFileClass))
110 return ud, nil
111}
112
113func (file *lFile) Type() lFileType {
114 if file.fp == nil {

Callers 1

ioPopenFunction · 0.85

Calls 4

popenArgsFunction · 0.85
GetTypeMetatableMethod · 0.80
NewUserDataMethod · 0.45
SetMetatableMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…