Axon 是一个用于构建交互式命令行应用的轻量级 Go 库,提供了简洁易用的终端交互功能。
已经在 毫秒镜像 CLI配置工具 应用(如下)

go get github.com/muleiwu/axon
package main
import (
"fmt"
"github.com/muleiwu/axon"
"github.com/muleiwu/axon/pkg/question"
)
func main() {
// 普通问题
name := axon.Question("请输入您的姓名: ", "")
fmt.Printf("您好,%s!\n", name)
// 确认问题
proceed := axon.Confirm("是否继续? (y/n) ", true)
if proceed {
fmt.Println("继续执行...")
} else {
fmt.Println("已取消")
return
}
// 密码输入(隐藏显示)
password := axon.Password("请输入密码: ", "")
fmt.Println("密码已保存")
// 电话号码(带验证和脱敏)
phone := axon.PhoneNumber("请输入手机号: ", "")
fmt.Println("手机号已保存")
// 选择列表
items := []question.SelectionItem{
{Label: "选项一", Description: "这是第一个选项", Value: "option1"},
{Label: "选项二", Description: "这是第二个选项", Value: "option2"},
{Label: "选项三", Description: "这是第三个选项", Value: "option3"},
}
selected := axon.Selection("请选择一个选项:", items)
if selected == "exit" {
fmt.Println("您选择了退出")
} else {
fmt.Printf("您选择了: %s\n", selected)
}
}
func Question(question string, defaultValue string) string
询问用户普通问题并获取文本输入。
question: 要显示给用户的问题文本defaultValue: 默认值,当用户直接按回车时使用func Confirm(question string, defaultValue bool) bool
询问用户确认问题,获取 yes/no 回答。
question: 要显示给用户的问题文本defaultValue: 默认值,当用户直接按回车时使用func Password(question string, defaultValue string) string
询问用户密码,输入过程中密码会被隐藏显示。
question: 要显示给用户的问题文本defaultValue: 默认值,当用户直接按回车时使用func PhoneNumber(question string, defaultValue string) string
询问用户电话号码,包含格式验证功能。输入后自动脱敏处理,保护用户隐私。
question: 要显示给用户的问题文本defaultValue: 默认值,当用户直接按回车时使用func Selection(question string, items []SelectionItem) string
让用户从列表中选择一项。
question: 要显示给用户的问题文本items: 选择项列表创建选择列表时,可以使用 SelectionItem 结构定义选项:
type SelectionItem struct {
Label string // 显示的标签
Description string // 描述信息
Value string // 实际值
}
本项目采用 LICENSE 许可证开源。