treeboot 0.7.0

Bootstrap Git worktrees from one repo-local setup file.
use std::process::ExitCode;

mod commands;
mod reporter;

use commands::{parse, run_cli};
use reporter::StdoutReporter;

fn main() -> ExitCode {
    clap_complete::CompleteEnv::with_factory(commands::command).complete();

    let cli = parse();
    let result = {
        let mut reporter = StdoutReporter::default();
        run_cli(cli, &mut reporter)
    };

    match result {
        Ok(()) => ExitCode::SUCCESS,
        Err(error) => {
            eprintln!("treeboot: {error}");
            ExitCode::from(error.exit_code())
        }
    }
}