use mingling::setup::{DirectoryEnvironmentSetup, ExitCodeSetup, picker::HelpFlagSetup};
use mingling_cli::{
ThisProgram, config::MlingConfigSetup, linter::registry::LintRegistrySetup,
metadata::MinglingMetadataSetup, pkg_mgr::PackageManagerSetup,
};
#[tokio::main]
async fn main() {
let mut program = ThisProgram::new();
program.with_setup(HelpFlagSetup::default());
program.with_setup(ExitCodeSetup::default());
program.with_setup(DirectoryEnvironmentSetup::default());
program.with_setup(MinglingMetadataSetup);
program.with_setup(MlingConfigSetup);
program.with_setup(LintRegistrySetup);
program.with_setup(PackageManagerSetup);
program.exec_and_exit().await;
}