diff options
| -rw-r--r-- | src/lib.rs | 4 | ||||
| -rw-r--r-- | src/main.rs | 20 | 
2 files changed, 24 insertions, 0 deletions
| @@ -213,6 +213,10 @@ impl MP32RSS {          self.index.templates.values()      } +    pub fn get_template(&self, name: &str) -> Option<&Template> { +        self.index.templates.get(name) +    } +      /// Add a new template and rerender.      pub async fn add_template(          &mut self, diff --git a/src/main.rs b/src/main.rs index 5c56c93..f94e8d6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -39,6 +39,9 @@ enum Command {      /// Add or replace a template and regenerate the feed.      AddTemplate(AddTemplateArgs), +    /// Download a template +    GetTemplate(GetTemplateArgs), +      /// Remove a template and the files generated from it.      RemoveTemplate {          /// The template name. @@ -90,6 +93,13 @@ struct AddTemplateArgs {      name: String,  } +#[derive(clap::Args, Debug)] +struct GetTemplateArgs { +    /// The rendered filename. +    name: String, +} + +  #[tokio::main]  async fn main() -> Result<(), Box<dyn Error>> {      env_logger::Builder::from_env(Env::default().default_filter_or("info")).init(); @@ -108,6 +118,7 @@ async fn main() -> Result<(), Box<dyn Error>> {          Command::Delete { filename } => feed.delete(&filename).await,          Command::Templates => list_templates(&feed),          Command::AddTemplate(add_template_args) => add_template(&mut feed, add_template_args).await, +        Command::GetTemplate(get_template_args) => get_template(&mut feed, get_template_args).await,          Command::RemoveTemplate { name } => feed.delete_template(&name).await,      }  } @@ -172,3 +183,12 @@ async fn add_template(feed: &mut MP32RSS, args: AddTemplateArgs) -> Result<(), B      )      .await  } + +async fn get_template(feed: &mut MP32RSS, args: GetTemplateArgs) -> Result<(), Box<dyn Error>> { +    if let Some(template) = feed.get_template(&args.name) { +        println!("{}", template.template); +    } else { +        eprintln!("Could not find {}", args.name); +    } +    Ok(()) +} | 
