use clap::{Command, arg, command};
pub struct Cli {}
impl Cli {
fn cmd() -> Command {
command!()
.version("0.1.0")
.about("AWS Single Sign-On OIDC CLI")
.author("Ngakan Gandhi <ngandhi@pmintl.net")
.bin_name("deepr")
.subcommand(
command!("sso")
.about("SSO API")
.subcommand(
command!("configure")
.about("Configure SSO")
.arg(arg!(-s --"start-url" <VALUE> "SSO Start URL").required(true))
.arg(arg!(-r --"region" <VALUE> "AWS Region").required(true)),
)
.subcommand(
command!("update")
.about("Update SSO")
.arg(arg!(-s --"start-url" <VALUE> "SSO Start URL").required(true))
.arg(arg!(-r --"region" <VALUE> "AWS Region").required(true)),
),
)
}
#[allow(clippy::single_match)]
pub fn run() {
let matches = Cli::cmd().get_matches();
match matches.subcommand() {
Some(("sso", sso_matches)) => match sso_matches.subcommand() {
Some(("configure", flags)) => {
let start_url = flags.get_one::<String>("start-url").unwrap();
let region = flags.get_one::<String>("region").unwrap();
println!("SSO Start URL: {}\nSSO Region: {}", start_url, region);
}
Some(("update", flags)) => {
let start_url = flags.get_one::<String>("start-url").unwrap();
let region = flags.get_one::<String>("region").unwrap();
println!("SSO Start URL: {}\nSSO Region: {}", start_url, region);
}
_ => (),
},
_ => (),
}
}
}