Aleksandr
Эту сегодня просмотрю - как раз расчехлил свой пет проджект
Aleksandr
На первый взгляд очень похоже на nelance. Буду у компа - покручу детальнее
Pawel
по моему graph-gophers/graphql-go - это она и есть nelance
Pawel
могу ошибаться
Aleksandr
Возможно. Я посмотрел последние коммиты - там другой чел
Aleksandr
Но похоже по идее
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
У кого есть публичные репозитории с тестами чего-то прикладного поверх grpc, можете дать ссылки на посмотреть?
Aleksandr
Dmitry
какой пакет порекомендуете вместо flag (нужна внятная работа с позициоными параметрами) ? стадарт де факто ?
Kirill
https://github.com/spf13/cobra
Kirill
отличнейшая вещь
Kirill
очень мощная
Антон
Илья
мегаоверкилл
Илья
но мощная, бесспорно
Kirill
ну - я ж не знаю, что именно хочет человек
Илья
может быть, даже кофе заварит
Илья
😄
Kirill
предлагаю сначала то, что сам использую регулярно
Илья
Kirill
Илья
+ еще потоньше, от этих же ребят https://github.com/spf13/pflag
Kirill
Илья
глянь pflag
Илья
типизация есть, usage тоже
Dmitry
глянь pflag
насколько он распространен ? не хотелось бы чужой эксклюзивный велосипед с квадратными колесами использовать, я и свой могу написать
Denis
cobra классная, но не понравилось в ней то, как парсить параметр --config (путь к конфигу, чтобы можно было параметры читать и из конфига и из командной строки) - приходится делать хак - парсить дважды аргументы или много кода повторно писать.
Илья
pflag используется в viper, который очнеь распространен
Dmitry
Dmitry
ну хорошо. пожалуй заюзаю. спасибо
Kirill
я о pflag и забыл уже)
Илья
я его юзал для первых пет проджектов
Kirill
обычно или flag, или сразу cobra %)
Илья
с тех пор cli не делал давно 🙂 крайний раз как раз на кобре
Илья
просто для некоторых небольших проектов cobra , как буст в плюсах, слишком жирно 😄
Maxim
Не путайте и читайте доки
Dmitry
чето немогу найти ничего в документации pflags про позиционные параметры
Илья
у вас там такое расследование
Илья
Dmitry
cmd.exe filename1 filename 2
Dmitry
позиционые параметры filename1 filename2
Kirill
О_о
Kirill
это ж есть в os.Args()
Dmitry
Илья
эмм
Илья
так ее и не будет, как вы представляете себе типизацию для проивзольных строк?
Илья
https://github.com/spf13/cobra#positional-and-custom-arguments
Илья
все принимается как строка, дальше типизируйте как хотите, это же делает стандартный NArgs
Dmitry
как я представляю? выдает ошибки так же если попытаться загнать не тот тип в именованые флаги
Илья
эм, там именованый параметр f=1 который хелпером можно привести к нужному типу, а нужно получить произвольную неименованые строки, которые как-то валидировать
Dmitry
Kirill
а как ты приплёл к чистым os.Args пакет flag? O_o
Kirill
или я чего-то не помню?
Dmitry
flag не содержит нужной мне функциональности
Kirill
воот
Kirill
я и пытаюсь понять
Dmitry
os содержит но в зачаточном виде
Kirill
Kirill
это сбило с толку %)
Dmitry
ну я и спрашиваю либу которая делает тоже самое что и flag , только умеет еще дополнительно в позционные параметры
Kirill
а есть пример того, какая валидация тебе нужна?
Илья
вам argparse нужен? типо как в пейтоне?
Dmitry
Илья
https://github.com/avelino/awesome-go#command-line
Илья
кто-то уже пробовал форкать, но я сам не трогал
Kirill
учусгеу? :D
Kirill
type учусгеу interface{}? :D
Kirill
https://github.com/akamensky/argparse в такое не умеет, случаем?
Dmitry
ну тоесть как я понимаю все распространенные пакеты не умеют в позиционные параметры и проще запилить свой велосипед чем тащить в проект однозвездочный пакет
Илья
Видимо, не самый распространенный кейс, куча неименованных типизированных параметров
Je
имхо, если требуется что-то сложней, чем предоставляет flag, то уже нужно брать viper и конфиги в файлах
Kirill
Или кобру
Kirill
Ибо иногда хочется servicename stats -h -a