1#![doc = include_str!("../README.md")]
2
3use std::env;
4
5mod args;
6mod catalog;
7#[path = "io/mod.rs"]
8mod cli_io;
9mod commands;
10mod errors;
11mod execute;
12#[doc(hidden)]
13pub mod internal_metadata;
14mod parser;
15mod spec;
16#[cfg(test)]
17mod tests;
18mod web_payload;
19mod web_server;
20
21use crate::args::CliError;
22
23#[doc(hidden)]
24pub fn main() {
25 let args: Vec<String> = env::args().collect();
26 let exit_code = match run(&args) {
27 Ok(code) => code,
28 Err(err) => {
29 eprint!("{}", errors::render_text(&err));
30 1
31 }
32 };
33 std::process::exit(exit_code);
34}
35
36fn run(raw_args: &[String]) -> Result<i32, CliError> {
37 commands::run::run_root_command(raw_args)
38}