mirror of
				https://github.com/astral-sh/ruff.git
				synced 2025-10-31 12:05:57 +00:00 
			
		
		
		
	 3ee3434187
			
		
	
	
		3ee3434187
		
			
		
	
	
	
	
		
			
			## Summary
This PR mirrors the environment variable implementation we have in uv:
efc361223c/crates/uv-static/src/env_vars.rs (L6-L7).
See: https://github.com/astral-sh/ty/issues/773.
		
	
			
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| //! Run all code and documentation generation steps.
 | |
| 
 | |
| use anyhow::Result;
 | |
| 
 | |
| use crate::{
 | |
|     generate_cli_help, generate_docs, generate_json_schema, generate_ty_cli_reference,
 | |
|     generate_ty_env_vars_reference, generate_ty_options, generate_ty_rules, generate_ty_schema,
 | |
| };
 | |
| 
 | |
| pub(crate) const REGENERATE_ALL_COMMAND: &str = "cargo dev generate-all";
 | |
| 
 | |
| #[derive(clap::Args)]
 | |
| pub(crate) struct Args {
 | |
|     #[arg(long, default_value_t, value_enum)]
 | |
|     mode: Mode,
 | |
| }
 | |
| 
 | |
| #[derive(Copy, Clone, PartialEq, Eq, clap::ValueEnum, Default)]
 | |
| pub(crate) enum Mode {
 | |
|     /// Update the content in the `configuration.md`.
 | |
|     #[default]
 | |
|     Write,
 | |
| 
 | |
|     /// Don't write to the file, check if the file is up-to-date and error if not.
 | |
|     Check,
 | |
| 
 | |
|     /// Write the generated help to stdout.
 | |
|     DryRun,
 | |
| }
 | |
| 
 | |
| impl Mode {
 | |
|     pub(crate) const fn is_dry_run(self) -> bool {
 | |
|         matches!(self, Mode::DryRun)
 | |
|     }
 | |
| }
 | |
| 
 | |
| pub(crate) fn main(args: &Args) -> Result<()> {
 | |
|     generate_json_schema::main(&generate_json_schema::Args { mode: args.mode })?;
 | |
|     generate_ty_schema::main(&generate_ty_schema::Args { mode: args.mode })?;
 | |
|     generate_cli_help::main(&generate_cli_help::Args { mode: args.mode })?;
 | |
|     generate_docs::main(&generate_docs::Args {
 | |
|         dry_run: args.mode.is_dry_run(),
 | |
|     })?;
 | |
|     generate_ty_options::main(&generate_ty_options::Args { mode: args.mode })?;
 | |
|     generate_ty_rules::main(&generate_ty_rules::Args { mode: args.mode })?;
 | |
|     generate_ty_cli_reference::main(&generate_ty_cli_reference::Args { mode: args.mode })?;
 | |
|     generate_ty_env_vars_reference::main(&generate_ty_env_vars_reference::Args {
 | |
|         mode: args.mode,
 | |
|     })?;
 | |
|     Ok(())
 | |
| }
 |