rix/cmd/
mod.rs

1pub mod build_derivation;
2pub mod hash;
3pub mod show_derivation;
4use clap::{ArgMatches, Command};
5use colored::*;
6use std::process::ExitCode;
7
8pub struct RixSubCommand {
9    pub name: &'static str,
10    pub cmd: fn(Command) -> Command,
11    pub handler: fn(&ArgMatches) -> Result<(), ExitCode>,
12}
13
14pub fn print_err(msg: &str) {
15    eprintln!("{}: {}", "error".red(), msg);
16}
17
18pub fn to_cmd_err(result: Result<(), String>) -> Result<(), ExitCode> {
19    result.or_else(|err| {
20        print_err(&err);
21        Err(ExitCode::FAILURE)
22    })
23}
24
25pub fn print_and_err(msg: &str) -> ExitCode {
26    print_err(msg);
27    ExitCode::FAILURE
28}