gookit / gcli

🖥 Go CLI application, tool library, running CLI commands, support console color, user interaction, progress display, data formatting display, generate bash/zsh completion add more features. Go的命令行应用,工具库,运行CLI命令,支持命令行色彩,用户交互,进度显示,数据格式化显示,生成bash/zsh命令补全脚本
https://gookit.github.io/gcli/
MIT License
364 stars 41 forks source link

关于交互式建议 #58

Open hb0730 opened 2 years ago

hb0730 commented 2 years ago
  1. interact.ReadLine 是否新增必填选项
  2. interact.SelectOne

    SelectOne(title string, options interface{}, defOpt string, allowQuit ...bool)

    既然默认值已经是string,那optionsinterface是否能够确认类型, 好像defOpt只能是字符串下标

    image 这种可能想要的只是bool

参考 promptui

inhere commented 2 years ago

原来实现的比较简单。一直也没时间进一步优化改进 :)

有兴趣可以参与改进下

hb0730 commented 2 years ago

@inhere Command Cli时好像无法正确解析bool类型

1658899319246

image

image

inhere commented 2 years ago

这是参照 go flag 的逻辑处理的。 bool 值一般不会主动通过输入设置false,因为默认就是false。 要设置只能 -f=false。 go flag 底层没改的话应该也是这样的

hb0730 commented 2 years ago

@inhere 也试过 go flag方式init -f=false vue-test

会提示错误

ERROR: option error - bad flag syntax: -=

image

inhere commented 2 years ago

👍 哦 看到调试信息,好像知道哪里错误了