Files
runrs/src/template.rs
2025-01-18 14:37:49 +08:00

34 lines
1.1 KiB
Rust

use std::fs;
use std::os::unix::fs::PermissionsExt;
pub fn print_template(output: &Option<String>) {
let script = get_script_template();
if let Some(output_file) = output {
if fs::metadata(output_file).is_ok() {
failure!("Output script file exists: {}", output_file);
return;
}
if let Err(e) = fs::write(output_file, script) {
failure!("Write script file: {}, failed: {}", output_file, e);
} else {
success!("Write script file success: {}", output_file);
let _ = fs::set_permissions(output_file, PermissionsExt::from_mode(0o755));
}
} else {
println!("{}", script);
}
}
#[allow(unreachable_code)]
fn get_script_template() -> &'static str {
#[cfg(feature = "switch-rust-lang")]
return include_str!("script.template.rs");
#[cfg(feature = "switch-go-lang")]
return include_str!("script.template.go");
#[cfg(feature = "switch-ts-lang")]
return include_str!("script.template.ts");
#[cfg(feature = "switch-dart-lang")]
return include_str!("script.template.dart");
panic!("Unknown feature assigned.");
}