#![warn(missing_docs)]
pub mod cli;
pub mod commands;
pub mod installer;
pub use cli::Cli;
pub use commands::Commands;
pub use installer::{InstallDiff, InstallOptions, InstallPhase, InstallProgress, InstallResult, Installer};
use color_eyre::eyre::Result;
pub fn run<I, T>(args: I) -> Result<()>
where
I: IntoIterator<Item = T>,
T: Into<std::ffi::OsString> + Clone,
{
let cli = Cli::parse_from(args);
cli.execute()
}
pub async fn run_async<I, T>(args: I) -> Result<()>
where
I: IntoIterator<Item = T>,
T: Into<std::ffi::OsString> + Clone,
{
let cli = Cli::parse_from(args);
cli.execute_async().await
}