php-version-manager 1.3.0

A blazing fast, zero-configuration PHP version manager
mod cli;
mod commands;
mod constants;
mod fs;
mod interactive;
mod network;
mod shell;
mod update;
mod utils;

use anyhow::Result;
use clap::Parser;
use cli::Cli;
use colored::Colorize;

#[tokio::main]
async fn main() -> Result<()> {
    env_logger::init();

    let _pvm_dir = fs::get_pvm_dir()?;
    let versions_dir = fs::get_versions_dir()?;
    std::fs::create_dir_all(&versions_dir)?;

    let cli = Cli::parse();
    if let Some(cmd) = cli.command {
        cmd.call().await?;
    } else if let Err(e) = interactive::run_root_menu().await {
        eprintln!("{} Error: {}", "".red(), e);
        std::process::exit(1);
    }

    Ok(())
}