mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
Clippy settings: [workspace.lints.clippy] cognitive_complexity = "warn" dbg_macro = "warn" debug_assert_with_mut_call = "warn" doc_link_with_quotes = "warn" doc_markdown = "warn" empty_line_after_outer_attr = "warn" empty_structs_with_brackets = "warn" float_cmp = "warn" float_cmp_const = "warn" float_equality_without_abs = "warn" missing_const_for_fn = "warn" missing_errors_doc = "warn" mod_module_files = "warn" option_if_let_else = "warn" similar_names = "warn" suspicious_operation_groupings = "warn" unused_self = "warn" use_debug = "warn" used_underscore_binding = "warn" useless_let_if_seq = "warn" wildcard_dependencies = "warn" wildcard_imports = "warn" Command used: $ cargo +nightly clippy --fix Reviewed-by: Steffen Eiden <seiden@linux.ibm.com> Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
56 lines
1.5 KiB
Rust
56 lines
1.5 KiB
Rust
// SPDX-License-Identifier: MIT
|
|
//
|
|
// Copyright IBM Corp. 2024
|
|
|
|
#![allow(missing_docs)]
|
|
mod additional;
|
|
mod cli;
|
|
mod cmd;
|
|
mod exchange;
|
|
|
|
use clap::{CommandFactory, Parser};
|
|
use cli::{CliOptions, Command};
|
|
use log::trace;
|
|
use std::process::ExitCode;
|
|
use utils::{print_cli_error, print_error, print_version, PvLogger};
|
|
|
|
use crate::cmd::{check, create, perform, verify, CMD_FN, UV_CMD_FN};
|
|
|
|
static LOGGER: PvLogger = PvLogger;
|
|
const FEATURES: &[&[&str]] = &[CMD_FN, UV_CMD_FN];
|
|
const EXIT_CODE_ATTESTATION_FAIL: u8 = 2;
|
|
const EXIT_CODE_LOGGER_FAIL: u8 = 3;
|
|
|
|
fn main() -> ExitCode {
|
|
let cli: CliOptions = match CliOptions::try_parse() {
|
|
Ok(cli) => cli,
|
|
Err(e) => return print_cli_error(e, CliOptions::command()),
|
|
};
|
|
|
|
// set up logger/stderr
|
|
let log_level = cli.verbosity.to_level_filter();
|
|
if let Err(e) = LOGGER.start(log_level) {
|
|
// should(TM) never happen
|
|
eprintln!("Logger error: {e:?}");
|
|
return EXIT_CODE_LOGGER_FAIL.into();
|
|
}
|
|
|
|
trace!("Trace verbosity, may leak secrets to command-line");
|
|
trace!("Options {cli:?}");
|
|
|
|
let res = match &cli.cmd {
|
|
Command::Create(opt) => create(opt),
|
|
Command::Perform(opt) => perform(opt),
|
|
Command::Verify(opt) => verify(opt),
|
|
Command::Version => {
|
|
print_version!("2024", log_level; FEATURES.concat());
|
|
Ok(ExitCode::SUCCESS)
|
|
}
|
|
Command::Check(opt) => check(opt),
|
|
};
|
|
match res {
|
|
Ok(c) => c,
|
|
Err(e) => print_error(&e, log_level),
|
|
}
|
|
}
|