diff options
Diffstat (limited to 'gen/gen_compile_info.rs')
| -rw-r--r-- | gen/gen_compile_info.rs | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/gen/gen_compile_info.rs b/gen/gen_compile_info.rs index 5af030c..8d68d89 100644 --- a/gen/gen_compile_info.rs +++ b/gen/gen_compile_info.rs @@ -1,17 +1,20 @@ use std::path::PathBuf; +use just_template::{Template, tmpl_param}; + use crate::r#gen::{ constants::{COMPILE_INFO_RS, COMPILE_INFO_RS_TEMPLATE}, env::{get_git_branch, get_git_commit, get_platform, get_toolchain, get_version}, }; -/// Generate compile info +/// Generate compile info using just_template pub async fn generate_compile_info(repo_root: &PathBuf) { // Read the template code let template_code = tokio::fs::read_to_string(repo_root.join(COMPILE_INFO_RS_TEMPLATE)) .await .unwrap(); + // Get all the values needed for the template let date = chrono::Local::now().format("%Y-%m-%d %H:%M:%S").to_string(); let target = std::env::var("TARGET").unwrap_or_else(|_| "unknown".to_string()); let platform = get_platform(&target); @@ -20,18 +23,29 @@ pub async fn generate_compile_info(repo_root: &PathBuf) { let branch = get_git_branch().unwrap_or_else(|_| "unknown".to_string()); let commit = get_git_commit().unwrap_or_else(|_| "unknown".to_string()); - let generated_code = template_code - .replace("{date}", &date) - .replace("{target}", &target) - .replace("{platform}", &platform) - .replace("{toolchain}", &toolchain) - .replace("{version}", &version) - .replace("{branch}", &branch) - .replace("{commit}", &commit); + // Create a Template instance + let mut template = Template::from(template_code); + + // Set all parameters + tmpl_param!( + template, + date = date, + target = target, + platform = platform, + toolchain = toolchain, + version = version, + branch = branch, + commit = commit + ); + + // Expand the template + let generated_code = template.expand().unwrap(); // Write the generated code let compile_info_path = repo_root.join(COMPILE_INFO_RS); tokio::fs::write(compile_info_path, generated_code) .await .unwrap(); + + println!("Generated compile_info.rs using just_template"); } |
