conpub 0.1.1

Agent-first CLI for publishing local knowledge files to Confluence Cloud
mod application;
mod cli;
mod domain;
mod infrastructure;
mod support;

use clap::Parser;
use cli::Cli;
use support::{AppError, write_error, write_json};

fn main() {
    let cli = Cli::parse();
    let pretty = cli.pretty;

    match application::run(cli) {
        Ok(value) => {
            if let Err(err) = write_json(&value, pretty) {
                let app_err = AppError::new("OUTPUT_ERROR", err.to_string());
                let _ = write_error(&app_err, pretty);
                std::process::exit(app_err.exit_code);
            }
        }
        Err(err) => {
            let _ = write_error(&err, pretty);
            std::process::exit(err.exit_code);
        }
    }
}