Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /srv/vhost/diaridigital.net/home/html/sourcecode/includes/config.php on line 61

Deprecated: substr(): Passing null to parameter #1 ($string) of type string is deprecated in /srv/vhost/diaridigital.net/home/html/sourcecode/includes/config.php on line 61
Menú CLI
Source Code

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
Referencias
Más artículos




Xavier es un desarrollador senior full stack y opera desde la ciudad mediterránea de Barcelona. Le encantan las tecnologías de software y está convencido que el desarrollo de software es un proceso colaborativo y abierto.
Y es un apasionado de la astronomía y de la fotografía. Lo puedes encontrar en:
Comparte este post