feat: add __lang/rusty_jsc/, build_readme.rs
This commit is contained in:
38
build_readme_rs/src/main.rs
Executable file
38
build_readme_rs/src/main.rs
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env runrs
|
||||
//! ```cargo
|
||||
//! [dependencies]
|
||||
//! rust_util = { version = "0.6" }
|
||||
//! ```
|
||||
|
||||
use std::fs;
|
||||
|
||||
use rust_util::{failure_and_exit, opt_result, util_cmd, XResult};
|
||||
|
||||
fn main() -> XResult<()> {
|
||||
let readme_template_file = "README_template.md";
|
||||
let readme_template = opt_result!(fs::read_to_string(readme_template_file),
|
||||
"Read {} failed: {}", readme_template_file);
|
||||
|
||||
let output = util_cmd::run_command_or_exit("tree", &["-L", "2"]);
|
||||
if !output.status.success() {
|
||||
failure_and_exit!("Run tree -L 2 failed: {}", output.status);
|
||||
}
|
||||
let tree_output = String::from_utf8_lossy(&output.stdout).to_string();
|
||||
let tree_output_lines = tree_output.lines();
|
||||
let mut tree_lines = vec![];
|
||||
let ignored_file_list = vec![
|
||||
"LICENSE", "README.md", "README_template.md",
|
||||
"build_readme.js", "build_readme_rs",
|
||||
];
|
||||
for ln in tree_output_lines {
|
||||
let ignored = ignored_file_list.iter().any(|f| ln.ends_with(f));
|
||||
if !ignored {
|
||||
tree_lines.push(ln);
|
||||
}
|
||||
}
|
||||
let joined_tree_lines = tree_lines.join("\n");
|
||||
|
||||
let readme = readme_template.replace("$$TREE_L2$$", &joined_tree_lines);
|
||||
opt_result!(fs::write("README.md", readme), "Write README.md failed: {}");
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user