Задача является логическим продолжением
Как записывать stdout в буфер и считывать оттуда построчно?
Суть в том, что в
https://play.golang.org/p/aryjjfUZEmt идет ожидание окончания вывода. А пока это не произойдет, ничего не отправляется в брокер (в данном примере, для простоты, на экран).
Мне же необходимо не дожидаться и, по мере поступления вывода, отправлять их в брокер.
У меня основная загвоздка с переводами строк, потому что необходимо при получении массива байтов записать его в буфер, а другим читателем подхватывать его и анализировать переводы строк (при помощи scanner).
Добавлено:
Для примера эффекта, вместо
cmd := exec.Command("ls", "/etc")
(строка 24 из кода выше) взял из
https://gobyexample.com/tickers и скомпилировал код для программы, которая выводит в stdout данные не сразу, а постепенно при помошью таймера. В итоге получается, что пока процесс не завершится, в вышеприведенном примере не будет отправки по строкам.
Добавлено:
Обновил код со своей попыткой.