use std::process::ExitCode;
use clap::Parser;
use onevcs::cli::{ArtifactCommand, Cli, Command, RulesCommand, SessionCommand};
const NOT_IMPLEMENTED: u8 = 70;
fn main() -> ExitCode {
let cli = Cli::parse();
let command = match &cli.command {
Command::Register(_) => "register",
Command::Repos(_) => "repos",
Command::Resolve(_) => "resolve",
Command::Session { command } => match command {
SessionCommand::Open(_) => "session open",
SessionCommand::Adopt(_) => "session adopt",
SessionCommand::Close(_) => "session close",
},
Command::Publish(_) => "publish",
Command::Recover(_) => "recover",
Command::Recoverable(_) => "recoverable",
Command::Integrate(_) => "integrate",
Command::Sync(_) => "sync",
Command::Events(_) => "events",
Command::Artifact { command } => match command {
ArtifactCommand::Cat(_) => "artifact cat",
},
Command::Rules { command } => match command {
RulesCommand::Check(_) => "rules check",
},
};
eprintln!("onevcs: `{command}` is not implemented yet — this build is interface-only.");
eprintln!("ACTION: implement the seam it names; the approved contract is in docs/contract.md.");
ExitCode::from(NOT_IMPLEMENTED)
}