mod api;
mod command;
mod util;
use anyhow::bail;
use api::{AdminAction, Args, CliError, Command, CreateObject, DevObject, GetObject, UpdateObject};
use clap::Parser;
use command::dev_oauth2_listen;
use env_logger::Env;
use secd::{
auth::z, Credential, CredentialType, Secd, ENV_AUTH_STORE_CONN_STRING, ENV_SPICE_SECRET,
ENV_SPICE_SERVER,
};
use util::{error_detail, Result};
use uuid::Uuid;
use crate::api::ValidationMethod;
const CONFIG_DIR_NAME: &str = "secdiam";
const CONFIG_PROFILE_FILE: &str = "profiles.toml";
const CONFIG_LOGIN_TEMPLATE: &str = "default_login.html";
const CONFIG_SIGNUP_TEMPLATE: &str = "default_signup.html";
const ISSUE_TRACKER_LOC: &str = "https://www.github.com/secdiam/iam";
#[tokio::main]
async fn main() {
env_logger::init_from_env(Env::default().default_filter_or("debug"));
match exec().await {
Ok(Some(s)) => println!("{}", s),
Err(e) => {
println!("{}", e);
std::process::exit(1);
}
_ => {}
}
}
async fn exec() -> Result