ggen-cli-lib 26.5.19

CLI interface for ggen
Documentation
{#- Generated command module for {{ command_name }} -#}

use clap::Parser;
use anyhow::Result;

/// {{ command_name }} command
#[derive(Debug, Parser)]
pub struct {{ command_name | pascal }}Args {
    {%- for argument in arguments %}
    /// {{ argument.comment }}
    {%- if argument.required %}
    pub {{ argument.name }}: {{ argument.type }},
    {%- else %}
    #[arg(long)]
    pub {{ argument.name }}: Option<{{ argument.type }}>,
    {%- endif %}
    {%- endfor %}

    {%- for flag in flags %}
    /// {{ flag.comment }}
    #[arg(short = '{{ flag.short_flag }}', long)]
    pub {{ flag.name }}: bool,
    {%- endfor %}
}

/// Execute the {{ command_name }} command
pub async fn execute(args: {{ command_name | pascal }}Args) -> Result<()> {
    // Call domain logic
    crate::domain::{{ command_name | snake }}::execute(args).await
}