mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-30 13:51:37 +00:00
35 lines
839 B
Rust
35 lines
839 B
Rust
//! Utility to generate Ruff's pyproject.toml section from a Flake8 INI file.
|
|
|
|
use std::path::PathBuf;
|
|
|
|
use anyhow::Result;
|
|
use clap::Parser;
|
|
use configparser::ini::Ini;
|
|
|
|
use flake8_to_ruff::converter;
|
|
|
|
#[derive(Parser)]
|
|
#[command(
|
|
about = "Convert existing Flake8 configuration to Ruff.",
|
|
long_about = None
|
|
)]
|
|
struct Cli {
|
|
/// Path to the Flake8 configuration file (e.g., 'setup.cfg', 'tox.ini', or '.flake8').
|
|
#[arg(required = true)]
|
|
file: PathBuf,
|
|
}
|
|
|
|
fn main() -> Result<()> {
|
|
let cli = Cli::parse();
|
|
|
|
// Read the INI file.
|
|
let mut ini = Ini::new_cs();
|
|
ini.set_multiline(true);
|
|
let config = ini.load(cli.file).map_err(|msg| anyhow::anyhow!(msg))?;
|
|
|
|
// Create the pyproject.toml.
|
|
let pyproject = converter::convert(config)?;
|
|
println!("{}", toml::to_string(&pyproject)?);
|
|
|
|
Ok(())
|
|
}
|