io.popen, как получить вывод go в lua - PullRequest
0 голосов
/ 05 мая 2019

Как я могу перехватить ошибки компилятора в lua?

Я пытаюсь получить вывод об ошибках компилятора в панели tmux, используя lua при выполнении скрипта результат отображается только на текущей панели, а не на второй и файл / tmp / output всегда пуст

cmd=io.popen("go build -gcflags=-e scree.go")
f=io.open("/tmp/output")
f:write(cmd:read("*all")) 
 for line in f:lines() do
    os.execute("tmux run-shell -t 2 'echo " .. line .. "' ")
 end 
f:close()

Есть ли способ сделать это без использования временного файла?

1 Ответ

0 голосов
/ 06 мая 2019

Я не совсем уверен в этом.Но может быть что-то вроде следующего.то есть pipe stderr для stdout и захвата результата (не проверено).

f = assert (io.popen ("go build -gcflags=-e scree.go 2>&1")) 
 for line in f:lines() do
   os.execute("tmux run-shell -t 2 'echo " .. line .. "' ")
 end   
f:close()

Я думаю, ключ в том, что popen не будет захватывать stderr.Подробнее об этом здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...