Warning: Undefined array key "typ" in /srv/vhost/diaridigital.net/home/html/sourcecode/main/articles.php on line 18
Menú CLI
Tiempo de lectura: 1 minutos
Práctico menú de líneas de comandos con mucha funcionalidad y de fácil codificación
Paquetes utilizados
Importamos el siguiente paquete i actualizamos con go mod tidy
import (
"github.com/dixonwille/wmenu"
) Definimos el menú
Creamos cada una de las opciones de menú y la función por defecto
menu := wmenu.NewMenu("Llamada a APIs")
menu.Action(default_fn)
menu.Option("AEAT NIF", nil, false, opt1_fn)
menu.Option("Fatsecret", nil, true, opt2_fn)
menu.Option("El tiempo", nil, false, opt3_fn) Acciones del menú
Definimos las funciones que ejecutan cada una de las opciones de menú y la acción por defecto, en caso de error de entrada o que no haya selección del usuario
func main() {
default_fn := func(opts []wmenu.Opt) error {
fmt.Printf("Seleccionada la opción %s...", opts[0].Text)
return nil
}
opt1_fn := func(opt wmenu.Opt) error {
fmt.Printf("Hacienda\n")
return nil
}
opt2_fn := func(opt wmenu.Opt) error {
fmt.Printf("Valor nutricional\n")
return nil
}
opt3_fn := func(opt wmenu.Opt) error {
fmt.Printf("El tiempo de hoy\n")
return nil
} Ejecución
Y llamamos al menú para iniciar la aplicación
err := menu.Run()
if err != nil {
log.Fatal(err)
} El menú que aparece es este:
1) AEAT NIF
2) *Fatsecret
3) El tiempo
Llamada a APIs
> Más funciones
Este paquete permite crear estos menús de línea de comando e incluyen mucha funcionalidad, entre otras:
- Permitir selección múltiple
- Cambiar el color de las diferentes partes del menú
- Hacer preguntas simples de sí o no
- Validar todas las respuestas antes de llamar a cualquier función
- Determinar qué Acción se debe llamar (Opciones, Predeterminado o Acción Múltiple)
- Volver a hacer la pregunta si la respuesta no es válida hasta una cierta cantidad de veces
- Cambiar el
Reader - Tiene su propia estructura de error para que pueda escribir errores de menú de afirmación
- wmenu
https://pkg.go.dev