adnv 1.5.0

CLI that tracks, checks and auto-updates infrastructure dependency versions across Terraform, Helm, Docker, Git and npm
Documentation
use clap::Subcommand;
use miette::Result;

use adnv::Config;

mod check;
mod error;
mod outdated;
mod run;
mod update;

#[derive(Debug, Subcommand)]
pub enum Command {
    /// Tasks executor using the workflow entry in config file as a playbook.
    Run(run::Command),

    /// Displays outdated modules/providers from terraform files and outdated dependencies from helm charts.
    Outdated(outdated::Command),

    /// Updates outdated modules/providers from terraform files and outdated dependencies from helm charts. Versions that use version matching aren't updated.
    Update(update::Command),

    /// Displays last updates of sources from config file.
    Check(check::Command),
}

impl Command {
    pub async fn run(self, config: Option<&Config>) -> Result<()> {
        match self {
            Command::Run(subcommand) => subcommand.run(config).await,
            Command::Outdated(subcommand) => subcommand.run().await,
            Command::Update(subcommand) => subcommand.run().await,
            Command::Check(subcommand) => subcommand.run(config).await,
        }
    }
}