mirror of
https://github.com/astral-sh/ruff
synced 2026-01-21 21:40:51 -05:00
31 lines
771 B
Rust
31 lines
771 B
Rust
use std::fs;
|
|
use std::path::PathBuf;
|
|
|
|
use anyhow::Result;
|
|
use clap::Args;
|
|
use ruff::settings::options::Options;
|
|
use schemars::schema_for;
|
|
|
|
#[derive(Args)]
|
|
pub struct Cli {
|
|
/// Write the generated table to stdout (rather than to `ruff.schema.json`).
|
|
#[arg(long)]
|
|
pub(crate) dry_run: bool,
|
|
}
|
|
|
|
pub fn main(cli: &Cli) -> Result<()> {
|
|
let schema = schema_for!(Options);
|
|
let schema_string = serde_json::to_string_pretty(&schema).unwrap();
|
|
|
|
if cli.dry_run {
|
|
println!("{schema_string}");
|
|
} else {
|
|
let file = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
|
.parent()
|
|
.expect("Failed to find root directory")
|
|
.join("ruff.schema.json");
|
|
fs::write(file, schema_string.as_bytes())?;
|
|
}
|
|
Ok(())
|
|
}
|