mod api;
mod command;
mod util;
use crate::api::ValidationMethod;
use anyhow::bail;
use api::{
AdminAction, Args, CliError, Command, CreateObject, DevObject, GetObject, UpdateObject,
ValidateObject,
};
use clap::Parser;
use command::dev_oauth2_listen;
use env_logger::Env;
use secd::{CredentialType, Secd};
use time::OffsetDateTime;
use util::Result;
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