feat: with multiple args
All checks were successful
continuous-integration/drone/push Build is passing

Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
Kasper Juul Hermansen 2023-10-29 00:13:45 +02:00
parent 1b9c9188d4
commit e2feef1c27
Signed by: kjuulh
GPG Key ID: 9AA7BC13CE474394

View File

@ -1,32 +1,37 @@
use std::{path::PathBuf, str::FromStr}; use std::{path::PathBuf, str::FromStr};
use clap::{Arg, ArgMatches, Command}; use clap::{Arg, ArgGroup, ArgMatches, Command};
use crate::{cli::CuddleCli, model::CuddleVariable}; use crate::{cli::CuddleCli, model::CuddleVariable};
const DESTINATION: &'static str = "destination is the output path of the template once done, but default .tmpl is stripped and the normal file extension is used. this can be overwritten if a file path is entered instead. I.e. (/some/file/name.txt)";
const TEMPLATE_FILE: &'static str = "template-file is the input file path of the .tmpl file (or inferred) that you would like to render";
pub fn build_command(root_cmd: Command) -> Command { pub fn build_command(root_cmd: Command) -> Command {
root_cmd.subcommand( root_cmd.subcommand(
Command::new("render_template") Command::new("render_template")
.about("renders a jinja compatible template") .about("renders a jinja compatible template")
.args(&[ .args(&[
Arg::new("template-file") Arg::new("template-file")
.alias("template") .alias("template")
.short('t') .short('t')
.long("template-file") .long("template-file")
.required(true) .required(true)
.action(clap::ArgAction::Set).long_help("template-file is the input file path of the .tmpl file (or inferred) that you would like to render"), .action(clap::ArgAction::Set)
Arg::new("destination") .long_help(TEMPLATE_FILE),
.alias("dest") Arg::new("destination")
.short('d') .alias("dest")
.long("destination") .short('d')
.required(true) .long("destination")
.action(clap::ArgAction::Set) .required(true)
.long_help("destination is the output path of the template once done, but default .tmpl is stripped and the normal file extension is used. this can be overwritten if a file path is entered instead. I.e. (/some/file/name.txt)"), .action(clap::ArgAction::Set)
Arg::new("extra-var") .long_help(DESTINATION),
.long("extra-var") Arg::new("extra-var")
.required(false) .long("extra-var")
.action(clap::ArgAction::Set), .required(false)
])) .action(clap::ArgAction::Append),
]),
)
} }
pub struct RenderTemplateCommand { pub struct RenderTemplateCommand {