
Dmitry
01.06.2018
15:55:32

Илья
01.06.2018
15:56:38
эмм
так ее и не будет, как вы представляете себе типизацию для проивзольных строк?
https://github.com/spf13/cobra#positional-and-custom-arguments

Google

Илья
01.06.2018
15:57:30
все принимается как строка, дальше типизируйте как хотите, это же делает стандартный NArgs

Aleksandr
01.06.2018
15:58:18

Dmitry
01.06.2018
15:58:28
как я представляю? выдает ошибки так же если попытаться загнать не тот тип в именованые флаги

Илья
01.06.2018
15:59:16
эм, там именованый параметр f=1 который хелпером можно привести к нужному типу, а нужно получить произвольную неименованые строки, которые как-то валидировать

Dmitry
01.06.2018
15:59:29

Kirill
01.06.2018
16:02:56
а как ты приплёл к чистым os.Args пакет flag? O_o
или я чего-то не помню?

Dmitry
01.06.2018
16:03:45
flag не содержит нужной мне функциональности

Kirill
01.06.2018
16:03:59
воот
я и пытаюсь понять

Dmitry
01.06.2018
16:04:05
os содержит но в зачаточном виде

Kirill
01.06.2018
16:04:29

Google

Kirill
01.06.2018
16:04:40
это сбило с толку %)

Dmitry
01.06.2018
16:04:56
ну я и спрашиваю либу которая делает тоже самое что и flag , только умеет еще дополнительно в позционные параметры

Kirill
01.06.2018
16:05:14
а есть пример того, какая валидация тебе нужна?

Илья
01.06.2018
16:05:51
вам argparse нужен? типо как в пейтоне?

Dmitry
01.06.2018
16:06:09

Илья
01.06.2018
16:06:12
https://github.com/avelino/awesome-go#command-line
кто-то уже пробовал форкать, но я сам не трогал

Dmitry
01.06.2018
16:06:35

Kirill
01.06.2018
16:07:01
учусгеу? :D
type учусгеу interface{}? :D
https://github.com/akamensky/argparse в такое не умеет, случаем?

Dmitry
01.06.2018
16:11:05
ну тоесть как я понимаю все распространенные пакеты не умеют в позиционные параметры и проще запилить свой велосипед чем тащить в проект однозвездочный пакет

Илья
01.06.2018
16:18:55
Видимо, не самый распространенный кейс, куча неименованных типизированных параметров

Jentry
01.06.2018
16:20:02
имхо, если требуется что-то сложней, чем предоставляет flag, то уже нужно брать viper и конфиги в файлах

Kirill
01.06.2018
16:20:23
Или кобру
Ибо иногда хочется servicename stats -h -a

Dmitry
01.06.2018
16:27:26
запилю пожалуй пакет для парсинга позиционных параметров онли
чувствую взлетит

The
01.06.2018
16:33:56
а в go есть оптимизация хвостовой рекурсии?

Google

The
01.06.2018
16:35:30
а, кажется есть

Илья
01.06.2018
16:37:22
Нет

Kirill
01.06.2018
16:43:19

The
01.06.2018
16:43:58
я сначала на эту статью наткнулся
https://medium.com/@felipedutratine/iterative-vs-recursive-vs-tail-recursive-in-golang-c196ca5fd489
там товарищ утверждал что есть

Maksim (Ellrion)
01.06.2018
16:47:39

Dmitry
01.06.2018
16:52:01

Maksim (Ellrion)
01.06.2018
16:52:53

Dmitry
01.06.2018
16:54:12

Maksim (Ellrion)
01.06.2018
16:56:01

Dmitry
01.06.2018
17:01:13

Maksim (Ellrion)
01.06.2018
17:03:39

Dmitry
01.06.2018
17:06:02

Maksim (Ellrion)
01.06.2018
17:12:57
Что я тут переизобрел? Я использовал просто методы стандартной библиотеки.
Но видимо я должен был вместо этого тянуть чей то левый пакет. Ага)

Kirill
01.06.2018
17:17:05

Maksim (Ellrion)
01.06.2018
17:19:34

Dmitry
01.06.2018
17:19:59

Maksim (Ellrion)
01.06.2018
17:20:50
Для каждой подкоманды будет стандартный -h

Google

Maksim (Ellrion)
01.06.2018
17:24:04
Ладно я вам доказывать ничего особо не хочу. В го есть стандартные средства я их хотел показать и помочь с быстрым решением без монстров типа кобры. только и всего.

Dmitry
01.06.2018
17:25:17
А общий хелп по всем сабкомандам и флагами?

Pawel
01.06.2018
17:55:19
Кто нибудь задавался вопросом - как повесить json-rpc server на вебсокет горилки? Вот умный мужик предлагет https://github.com/powerman/rpc-codec/issues/16#issuecomment-287952309 Интересует практический аспект - насколько этот код prod ready или там есть не очевидные грабли/косяки?
как то сложно там всё. Вот думаю - а не лучше ли забить не вебсокеты и сделать по старинке на хттп?

Dmitry
01.06.2018
18:17:53
я его юзал для первых пет проджектов
а https://github.com/alexflint/go-arg использовал? звездочки зашкаливают, на вид простой как две копейки. для простых скриптиков мне кажется самое то

Admin
ERROR: S client not available

Илья
01.06.2018
18:36:50
Я давно не делал сложных cli, для простого flags хватает за глаза

Dmitry
01.06.2018
18:57:10

Slava
01.06.2018
20:40:34
у меня есть небольшой враппер который генерит флаги для стандартного flags на основе структур
https://github.com/octago/sflags

Мерлин
01.06.2018
20:57:13

Alexander
01.06.2018
22:31:10

Kirill
01.06.2018
22:32:38

Александр
02.06.2018
04:30:31
чо тут?

Dmitry
02.06.2018
07:46:06
https://github.com/octago/sflags
извини, я тупой и не пойму зачем этот пакет нужен. для поддержки структур как определения аргументов для любой библиотеки что не поддерживает структуры ? а зачем если можно взять библиотеку что поддерживает структуры ?

Daniel
02.06.2018
07:55:46
это кодогенератор
у вас есть структура конфига, и вы нарисовали ей тегов
можете позвать этот кодогенератор, он наделает инициализации для flags (можно и для других парсеров)
это всего-навсего чтобы не писать к своей структуре flag-инициализацию руками (и не править ее при изменении структуры)

Google

Dmitry
02.06.2018
08:14:03
с одной стороны интересно, с другой лишний слой абстракции

Daniel
02.06.2018
08:17:17
э, нет
тут нет никакой абстракции вообще
тут только собраны в одно место вещи, которые обычно в разных лежат

Dmitry
02.06.2018
08:22:22
в чем профит брать sflags + стандартный flag , а не сразу брать другую либу уже понимающую структуры ?

Daniel
02.06.2018
08:23:31
если прям вот нуны преймущества - "это" поддерживает больше одного парсера аргументов

Dmitry
02.06.2018
08:24:41

Daniel
02.06.2018
08:25:00
коллега, я лучше пойду позавтракаю

Dmitry
02.06.2018
08:25:16
да пожалуйста
просто возможность смены парсера без определенной цели в процессе разработки.. ну это по меньшей мере нелогично

Michael
02.06.2018
08:30:31
кто-то Qt под Android собирал?)
с обвязкой для Go

Dmitry
02.06.2018
08:32:26
да я вижу полезность если это действительно кодогенератор, тоесть сгенеренный код может использоваться и без sflags , но нет же.. sflags враппер, и приложения должны запускать его каждый раз

Kirill
02.06.2018
08:48:09
Что ты пытаешься сделать?