use crate::macro_replace_placeholder;
use crate::models::model_params::FileGenerationParams;
use std::{
fs::File,
io::{BufRead, BufReader, Write},
path::PathBuf,
};
pub fn replace_placeholders(
template_file: &PathBuf,
output_file: &PathBuf,
params: &FileGenerationParams,
) -> std::io::Result<()> {
let tpl = File::open(template_file)?;
let tpl_reader = BufReader::new(tpl);
let mut output = File::create(output_file)?;
let tpl_lines = tpl_reader.lines();
for line in tpl_lines {
let line = line?;
let replaced_line = macro_replace_placeholder!(
line,
params,
author,
build,
categories,
description,
documentation,
edition,
email,
homepage,
keywords,
license,
name,
output,
readme,
repository,
rustversion,
version,
website
);
writeln!(output, "{replaced_line}")?;
}
Ok(())
}