pub mod build;
pub mod cache;
pub mod graph;
pub mod oci;
pub mod policy;
pub mod remote;
pub mod verify;
use clap::{Parser, Subcommand, ValueEnum};
#[derive(Parser, Debug)]
#[command(
name = "rivox",
author = "Aaryan Rawat <aaryan28rwt@gmail.com>",
version = "1.0.0",
about = "Universal polyglot build coordination layer for Python, Rust, Node, Go, and Java",
long_about = "Rivox coordinates native ecosystem resolvers (uv, cargo, pnpm, go, gradle) to construct a unified DAG, manage content-addressed build caches, and emit supply-chain provenance."
)]
pub struct Cli {
#[command(subcommand)]
pub command: Commands,
#[arg(short, long, global = true)]
pub verbose: bool,
}
#[derive(Subcommand, Debug)]
pub enum Commands {
Build(build::BuildArgs),
Cache(cache::CacheArgs),
Graph(graph::GraphArgs),
Oci(oci::OciArgs),
Policy(policy::PolicyArgs),
Remote(remote::RemoteArgs),
Verify(verify::VerifyArgs),
Benchmark,
Completions {
#[arg(value_enum)]
shell: Shell,
},
}
#[derive(ValueEnum, Clone, Copy, Debug)]
#[allow(clippy::enum_variant_names)]
pub enum Shell {
Bash,
Zsh,
Fish,
PowerShell,
Elvish,
}