Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CommandLineLite

License: GPL v3 Made with C# Platform


CommandLineLite es una librería ligera, intuitiva y sin dependencias innecesarias para manejar argumentos de línea de comandos en aplicaciones .NET.
Ideal para herramientas de consola donde quieres simplicidad, claridad y cero magia detrás del código.

✨ Diseñada para desarrolladores que prefieren escribir código limpio y tener control total del flujo.


🚀 Características

  • ✅ Sintaxis clara y minimalista
  • 🧩 Definición tipada de opciones (Option<T>)
  • 🔍 Soporte para alias (-h, --help)
  • 📘 Generación automática de ayuda (Help.Print())
  • 🧱 Integración opcional con appsettings.json para versión
  • ⚙️ Compatible con .NET 8 y .NET 9

📦 Instalación

Desde NuGet (próximamente):

dotnet add package CommandLineLite

O simplemente copia los archivos fuente si prefieres mantenerlo interno.

🧪 Ejemplo completo de uso

El siguiente ejemplo está disponible en el directorio tests, e ilustra cómo usar CommandLineLite para crear una aplicación de consola con parámetros, validación y ayuda automática.

1️⃣ Definir la clase de opciones

using CommandLineLite;

public class Opciones : IValidatable
{
    public string Nombre { get; set; } = "";
    public int Edad { get; set; } = 0;
    public bool Verbose { get; set; }

    public void Validate()
    {
        if (string.IsNullOrWhiteSpace(Nombre))
            throw new ArgumentException("Debe especificar el nombre con --nombre o -n");
        if (Edad <= 0)
            throw new ArgumentException("La edad debe ser mayor a 0");
    }
}

public static class Program
{
    public static void Main(string[] args)
    {
        // Definir el comando principal
        var command = new Command("Ejemplo de uso de CommandLineLite");

        // Registrar las opciones que el programa acepta
        command.AddOption(new Option<string>(
            "--nombre",
            "Nombre del usuario",
            isRequired: true,
            alias: "-n"
        ));
        command.AddOption(new Option<int>(
            "--edad",
            "Edad del usuario",
            defaultValue: 18,
            alias: "-e")
        );
        command.AddOption(new Option<bool>(
            "--verbose",
            "Muestra mensajes detallados",
            alias: "-v"))
        ;

        // Parsear los argumentos en la clase de opciones
        var opciones = Parser.Parse<Opciones>(command, args);

        // Lógica del programa
        Console.WriteLine($"Hola {opciones.Nombre}, tienes {opciones.Edad} años.");
        if (opciones.Verbose)
            Console.WriteLine("Modo detallado activado.");
    }
}

lo puedes ejecutar por ejemplo con:

dotnet run -- --nombre Marcos --edad 35 --verbose
dotnet run -- --help

Uso: aplicacion [opciones]
Ejemplo de uso de CommandLineLite

Opciones:
  --nombre, -n          Nombre del usuario
  --edad, -e            Edad del usuario
  --verbose, -v         Muestra mensajes detallados
  --help, -h            Muestra esta ayuda
  --version, -v         Muestra la versión de la aplicación

¿Te resultó útil CommandLineLite?
⭐ Dale una estrella al repositorio

¿Quieres apoyar el desarrollo?
Invítame un café

About

Librería para manejar múltiples argumentos recibidos desde la linea de comandos en chsarp

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages