pretty-please 0.1.0

The polite sudo.
Documentation
use anyhow::Result;
use clap::Parser;
use owo_colors::OwoColorize;
use pretty_please::cli::{Cli, CliAction};

fn main() {
    if let Err(error) = run() {
        eprintln!("{} {error:#}", "error:".red().bold());
        std::process::exit(1);
    }
}

fn run() -> Result<()> {
    let cli = Cli::parse();

    match cli.into_command_input() {
        CliAction::Init(shell) => {
            print!("{}", shell.init_script());
            Ok(())
        }
        CliAction::Completions(shell) => {
            shell.write_completions()?;
            Ok(())
        }
        CliAction::Exec(input) => pretty_please::exec::run(input),
    }
}