treeboot 0.7.0

Bootstrap Git worktrees from one repo-local setup file.
use clap::Args;

use super::output::{OutputArgs, ReportFormat, write_structured};

#[derive(Debug, Args, Clone, Default)]
pub(crate) struct VersionArgs {
    #[command(flatten)]
    output: OutputArgs,
}

pub(crate) fn run_version_command(args: VersionArgs) -> treeboot_core::Result<()> {
    let info = treeboot_core::treeboot_version_info();

    match args.output.format() {
        ReportFormat::Text => {
            print_version_text(&info);
            Ok(())
        }
        format => write_structured(&info, format),
    }
}

pub(crate) fn print_version_text(info: &treeboot_core::VersionInfo) {
    println!(
        "{} {} (spec {})",
        info.package, info.version, info.spec_version
    );
}