useclap::Parser;usecolor_eyre::eyre::Result;usekubectl_view_allocations::{CliOpts, GroupBy, do_main};fninit_tracing(){usetracing_error::ErrorLayer;usetracing_subscriber::prelude::*;usetracing_subscriber::{EnvFilter, fmt};let fmt_layer =fmt::layer().with_target(false);let filter_layer =EnvFilter::try_from_default_env().or_else(|_|EnvFilter::try_new("warn")).unwrap();tracing_subscriber::registry().with(filter_layer).with(fmt_layer).with(ErrorLayer::default()).init();}#[tokio::main]
async fnmain()->Result<()>{init_tracing();color_eyre::config::HookBuilder::default().panic_section("consider reporting the bug on github").install()?;letmut cli_opts =CliOpts::parse();//HACK because I didn't find how to default a multiple opts
if cli_opts.group_by.is_empty(){
cli_opts.group_by.push(GroupBy::resource);
cli_opts.group_by.push(GroupBy::node);
cli_opts.group_by.push(GroupBy::pod);}if!cli_opts.group_by.contains(&GroupBy::resource){
cli_opts.group_by.insert(0,GroupBy::resource)}
cli_opts.group_by.dedup();// dbg!(&cli_opts);
do_main(&cli_opts).await?;Ok(())}