Help us shape the future of Go! Take the 2026 Go Developer Survey

axon

package module
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 6, 2025 License: MIT Imports: 1 Imported by: 0

README

Axon

Axon is a lightweight Go library for building interactive command-line applications, providing simple and easy-to-use terminal interaction features.

Features

  • Simple and easy-to-use API, focused on providing quality terminal interaction experiences
  • Supports multiple interaction methods: standard questions, confirmation prompts, password input, phone number input, and list selection
  • Built-in data validation and formatting functions
  • Support for default values
  • Automatic masking of phone numbers to protect user privacy
  • Colored output support for enhanced visual experience

Millisecond Mirror Configuration Tool Screenshot

Installation

go get github.com/muleiwu/axon

Quick Start

package main

import (
	"fmt"
	"github.com/muleiwu/axon"
	"github.com/muleiwu/axon/pkg/question"
)

func main() {
	// Standard question
	name := axon.Question("Please enter your name: ", "")
	fmt.Printf("Hello, %s!\n", name)
	
	// Confirmation question
	proceed := axon.Confirm("Continue? (y/n) ", true)
	if proceed {
		fmt.Println("Continuing...")
	} else {
		fmt.Println("Cancelled")
		return
	}
	
	// Password input (hidden display)
	password := axon.Password("Please enter password: ", "")
	fmt.Println("Password saved")
	
	// Phone number (with validation and masking)
	phone := axon.PhoneNumber("Please enter mobile number: ", "")
	fmt.Println("Mobile number saved")
	
	// Selection list
	items := []question.SelectionItem{
		{Label: "Option 1", Description: "This is the first option", Value: "option1"},
		{Label: "Option 2", Description: "This is the second option", Value: "option2"},
		{Label: "Option 3", Description: "This is the third option", Value: "option3"},
	}
	selected := axon.Selection("Please select an option:", items)
	
	if selected == "exit" {
		fmt.Println("You chose to exit")
	} else {
		fmt.Printf("You selected: %s\n", selected)
	}
}

API Reference

Standard Question
func Question(question string, defaultValue string) string

Ask the user a standard question and get text input.

  • question: The question text to display to the user
  • defaultValue: Default value, used when the user presses enter directly
  • Returns: The string entered by the user
Confirmation Question
func Confirm(question string, defaultValue bool) bool

Ask the user a confirmation question to get a yes/no answer.

  • question: The question text to display to the user
  • defaultValue: Default value, used when the user presses enter directly
  • Returns: The user's selection result (true/false)
Password Input
func Password(question string, defaultValue string) string

Ask the user for a password, which will be hidden during input.

  • question: The question text to display to the user
  • defaultValue: Default value, used when the user presses enter directly
  • Returns: The password string entered by the user
Phone Number Input
func PhoneNumber(question string, defaultValue string) string

Ask the user for a phone number, with format validation. The input is automatically masked to protect user privacy.

  • question: The question text to display to the user
  • defaultValue: Default value, used when the user presses enter directly
  • Returns: The validated phone number string
Selection List
func Selection(question string, items []SelectionItem) string

Let the user select an item from a list.

  • question: The question text to display to the user
  • items: The list of selection items
  • Returns: The Value of the selected item, or "exit" if the user chooses to exit

Custom Selection Items

When creating a selection list, you can define options using the SelectionItem structure:

type SelectionItem struct {
	Label       string // The display label
	Description string // Description information
	Value       string // Actual value
}

License

This project is open source under the LICENSE license.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Confirm

func Confirm(question string, defaultValue bool) bool

Confirm 询问用户确认问题 question: 要显示给用户的问题文本 defaultValue: 默认值,当用户直接按回车时使用 返回: 用户的选择结果(true/false)

func Password

func Password(question string, defaultValue string) string

Password 询问用户密码 输入过程中密码会被隐藏显示 question: 要显示给用户的问题文本 defaultValue: 默认值,当用户直接按回车时使用 返回: 用户输入的密码字符串

func PhoneNumber

func PhoneNumber(question string, defaultValue string) string

PhoneNumber 询问用户电话号码 包含格式验证功能 question: 要显示给用户的问题文本 defaultValue: 默认值,当用户直接按回车时使用 返回: 经过验证的电话号码字符串

func Question

func Question(question string, defaultValue string) string

Question 询问用户普通问题 question: 要显示给用户的问题文本 defaultValue: 默认值,当用户直接按回车时使用 返回: 用户输入的字符串

func Selection

func Selection(question string, items []question2.SelectionItem) string

Selection 让用户从列表中选择一项 question: 要显示给用户的问题文本 items: 选择项列表 返回: 用户选择的项目的Value,如果选择退出则返回"exit"

Types

This section is empty.

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL