duck-template 0.1.2

A cli tool for generating files from a template just with a json file
use serde::Serialize;
use std::collections::HashMap;

use crate::parse_commands::{commands_structure::FlagHelp, get_flag_value::get_command_value};

#[derive(Debug, Clone, Serialize)]
pub struct CreateVariant {
  pub name: String,
  pub source: String,
  pub config: String,
  pub description: String,
}

impl CreateVariant {
  pub fn from_args(raw_args: &HashMap<String, String>) -> Self {
    Self {
      name: get_command_value("--name", "-n", raw_args),
      source: get_command_value("--source", "-s", raw_args),
      config: get_command_value("--config", "-c", raw_args),
      description: get_command_value("--description", "-d", raw_args),
    }
  }
}

pub const CREATE_VARIANT_FLAGS: &[FlagHelp] = &[
  FlagHelp {
    long: "--source",
    short: "-s",
    description: "Variant source",
    takes_value: true,
  },
  FlagHelp {
    long: "--config",
    short: "-c",
    description: "Variant config",
    takes_value: true,
  },
  FlagHelp {
    long: "--name",
    short: "-n",
    description: "Variant name",
    takes_value: true,
  },
  FlagHelp {
    long: "--description",
    short: "-n",
    description: "Variant description",
    takes_value: true,
  },
];