Anonymous
пока писала второй вопрос, нашла ответ
спасибо
John
ребята, а не подскажете с таким вот вопросом? я запускаю консольную утилиту через exec.Command а вывод делаю через fmt.Printf, но проблема в том, что данная консольная утилита, которую я вызываю - она без остановки выводит кучу строк информации (может бесконечно это делать). Каким образом мне проще всего выводить эту инфу?
Aleksandr
John
нет, я не могу ее вывести, потому что вывод никогда не заканчивается
John
программа будет кидать строчку за строчкой и так бесконечно
Aleksandr
John
именно
John
package main
import (
"fmt"
"log"
"os/exec"
)
func main() {
out, err := exec.Command("uuidgen").Output()
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s", out)
}
Aleksandr
именно
cmd := exec.Command("HandBrakeCLI", "--queue-import-file", task.QueueFile())
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err := cmd.Run()
John
да, я знаю, что могу использовать stdin, stdout, но сама соль в том, что в конечном результате мне нужно всю эту дичь выводить в json
John
на порт пробросить на локалхосте
Mikalai
Anton
хм, ты хочешь результат бесконечного стрима упаковать в конечный json документ?
Anton
или тебе нужно каждую строку из стрима превратить в конкретный жсон и плюнуть дальше?
John
нет, хочу его пачками выдавать, да знаю что много хочу)) не уверен, что это рили
John
да
John
именно плеваться кусками jsona во фронтендщиков
John
чтоб они с ним дальше игрались
Anton
такое?
Anton
John
возможно
John
но слишком абстрактно
John
имхо
John
я просто тупой)
Michael
😂😂😂
Michael
похоже надо веб апи подружить с мега секретной тулзой
John
та так и есть)
John
ввязался на свою голову
Michael
код лучше всего
Aleksandr
type Writer interface {
Write(p []byte) (n int, err error)
}
реализуешь интерфейс, получаешь байтики, считываешь в линии, отправляешь линии в канал, из канала считываешь и делаешь json. 10-15 строк
John
и правда
John
это оптимально
John
большое спасибо всем за подсказки
John
кстати, хотите поорать?
Michael
канал сделай буферизированным на всяк случай
Anton
только пиши в байтбуфер
Anton
John
на самом деле я уже пол года "работаю" программистом на golang
John
и сразу видно какого качества))
Michael
😂😂😂
Michael
может быть ты не Джон, а Джоанна из HR?
Aleksandr
Anton
John
не, я Иван))
John
та такое, вот недавно сказали, мол чувак, на нужно сделать трекер адаптер для сайта
Anton
кстати зачем?
ну я предполагаю что ему надо накопить N строк и получить json
хотя бафферед канал думаю внешний цмд не остановит
John
чтоб можно было трекать время
John
а весь прикол в том, что на сайте апишки нету
John
вообще
John
сайт на подобии редмайна, джиры
John
короче дичь
John
я говорю - я ж наговнокожу что пздц
John
они , мол - похер, джаст э бизнес ,бейба
John
ну я предполагаю что ему надо накопить N строк и получить json
именно это я и хочу сделать
Anton
я вот пока не понял, как трекер-адаптер для сайта вяжется с голангом, браузером и json-ом :)
John
блин, мне сложно формулировать мысли в столь позднее время, извините что так несвязно отвечаю ( на самом деле я пытаюсь скрыть свой аутизм)
John
не, это просто лиричное отступление
Anton
тебе активность на сайте трекать?
или активность на компе (не важно в каких аппах) трекать и загонять куда-то результат по рестовой апи на бекенд?
Michael
и причём там бесконечная тулза?
John
не, про трекер забудтье
John
в=все
John
просто есть тулза, которая запускаеться в консоли, и выводит строки, пока ее не остановишь
Michael
кстати зачем?
а кто бы знал куда он свой json будет отдавать
Michael
это понятно
Anton
Michael
пункт 2 какой?
Anton
John
сделать вывод этих строк в json
John
на порт
Anton
покажи пример строки той тулзы и пример жсона который нужен
John
это pcap формат
Michael
и о порте уточни
John
щас скину
John
хочу чтоб при обращении на localhost:port - выдавался json
Michael
вайршарк
John
я знаю
John
да, вайршарк открывает, все с ним хорошо