oph 0.1.0

OpenHealth CLI - Universal development tool for the OpenHealth team
Documentation
use crate::config::{Environment, REDIS_DEV_PASSWORD};
use crate::docker;
use crate::ui;
use anyhow::Result;
use clap::Subcommand;

#[derive(Subcommand, Clone, Copy)]
pub enum RedisCommand {
    /// Open Redis CLI
    Cli {
        /// Use production environment instead of development
        #[arg(long)]
        prod: bool,
    },
}

pub fn run(cmd: RedisCommand) -> Result<()> {
    docker::check_docker()?;

    match cmd {
        RedisCommand::Cli { prod } => cli(if prod {
            Environment::Prod
        } else {
            Environment::Dev
        })?,
    }

    Ok(())
}

fn cli(env: Environment) -> Result<()> {
    match env {
        Environment::Dev => {
            docker::exec(env, "cache", &["redis-cli", "-a", REDIS_DEV_PASSWORD])?;
        }
        Environment::Prod => {
            ui::warning("Note: You need to provide the password");
            docker::exec(env, "cache", &["redis-cli"])?;
        }
    }

    Ok(())
}