promptuiInteractive prompt for command-line applications

联合创作 · 2023-09-30 07:14

promptui


Interactive prompt for command-line applications.


We built Promptui because we wanted to make it easy and fun to explore cloud services with manifold cli.


Code of Conduct | Contribution Guidelines


GitHub release GoDoc Travis Go Report Card License


Overview


promptui


Promptui is a library providing a simple interface to create command-line prompts for go. It can be easily integrated into spf13/cobra, urfave/cli or any cli go application.


Promptui has two main input modes:



  • Prompt provides a single line for user input. Prompt supports optional live validation, confirmation and masking the input.


  • Select provides a list of options to choose from. Select supports pagination, search, detailed view and custom templates.



For a full list of options check GoDoc.


Basic Usage


Prompt



package main

import (
"errors"
"fmt"
"strconv"

"github.com/manifoldco/promptui"
)

func main() {
validate := func(input string) error {
_, err := strconv.ParseFloat(input, 64)
if err != nil {
return errors.New("Invalid number")
}
return nil
}

prompt := promptui.Prompt{
Label: "Number",
Validate: validate,
}

result, err := prompt.Run()

if err != nil {
fmt.Printf("Prompt failed %v\n", err)
return
}

fmt.Printf("You choose %q\n", result)
}


Select



package main

import (
"fmt"

"github.com/manifoldco/promptui"
)

func main() {
prompt := promptui.Select{
Label: "Select Day",
Items: []string{"Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
"Saturday", "Sunday"},
}

_, result, err := prompt.Run()

if err != nil {
fmt.Printf("Prompt failed %v\n", err)
return
}

fmt.Printf("You choose %q\n", result)
}


More Examples


See full list of examples

浏览 19
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报