mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-01 22:31:47 +00:00
Automatically update README.md from generate_rules_table.rs (#606)
This commit is contained in:
parent
c48c7669a8
commit
2e1799dd80
3 changed files with 104 additions and 46 deletions
|
@ -1,6 +1,5 @@
|
|||
use std::collections::{BTreeMap, BTreeSet};
|
||||
use std::fs::OpenOptions;
|
||||
use std::io;
|
||||
use std::io::Write;
|
||||
|
||||
use anyhow::Result;
|
||||
|
@ -10,6 +9,8 @@ use itertools::Itertools;
|
|||
use ruff::checks::CheckCode;
|
||||
use strum::IntoEnumIterator;
|
||||
|
||||
const FILE: &str = "src/checks_gen.rs";
|
||||
|
||||
#[derive(Parser)]
|
||||
#[command(author, version, about, long_about = None)]
|
||||
/// Generate the `CheckCodePrefix` enum.
|
||||
|
@ -115,29 +116,28 @@ fn main() -> Result<()> {
|
|||
}
|
||||
gen.line("}");
|
||||
|
||||
// Write the output to `src/checks_gen.rs`.
|
||||
let mut writer = if cli.dry_run {
|
||||
Box::new(io::stdout()) as Box<dyn Write>
|
||||
} else {
|
||||
let f = OpenOptions::new()
|
||||
.write(true)
|
||||
.truncate(true)
|
||||
.open("src/checks_gen.rs")
|
||||
.expect("unable to open file");
|
||||
Box::new(f) as Box<dyn Write>
|
||||
};
|
||||
// Construct the output contents.
|
||||
let mut output = String::new();
|
||||
output.push_str("//! File automatically generated by examples/generate_check_code_prefix.rs.");
|
||||
output.push('\n');
|
||||
output.push('\n');
|
||||
output.push_str("use serde::{{Serialize, Deserialize}};");
|
||||
output.push('\n');
|
||||
output.push_str("use strum_macros::EnumString;");
|
||||
output.push('\n');
|
||||
output.push('\n');
|
||||
output.push_str("use crate::checks::CheckCode;");
|
||||
output.push('\n');
|
||||
output.push('\n');
|
||||
output.push_str(&format!("{}", scope.to_string()));
|
||||
|
||||
writeln!(
|
||||
writer,
|
||||
"//! File automatically generated by examples/generate_check_code_prefix.rs."
|
||||
)?;
|
||||
writeln!(writer)?;
|
||||
writeln!(writer, "use serde::{{Serialize, Deserialize}};")?;
|
||||
writeln!(writer, "use strum_macros::EnumString;")?;
|
||||
writeln!(writer)?;
|
||||
writeln!(writer, "use crate::checks::CheckCode;")?;
|
||||
writeln!(writer)?;
|
||||
writeln!(writer, "{}", scope.to_string())?;
|
||||
// Write the output to `src/checks_gen.rs` (or stdout).
|
||||
if cli.dry_run {
|
||||
println!("{}", output);
|
||||
} else {
|
||||
let mut f = OpenOptions::new().write(true).truncate(true).open(FILE)?;
|
||||
write!(f, "{}", output)?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue