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}