deslicer_cli/commands/auth/
login.rs1use clap::Args as ClapArgs;
2use serde_json::json;
3
4use crate::commands::pipeline::{authenticate, map_cli_error};
5use crate::Ctx;
6
7#[derive(ClapArgs)]
8pub struct Args {
9 #[arg(long)]
10 pub environment: Option<String>,
11}
12
13pub async fn run(ctx: Ctx, args: Args) -> i32 {
14 match authenticate(&ctx, args.environment.as_deref(), None).await {
15 Ok((session, _client)) => {
16 let output = json!({
17 "platform": session.platform.header_value(),
18 "observer_api_url": session.backend.observer_api_url.as_str(),
19 "resolution_path": session.backend.resolution_path,
20 "audience": session.backend.audience,
21 });
22 let text = match serde_json::to_string_pretty(&output) {
23 Ok(s) => s,
24 Err(_) => output.to_string(),
25 };
26 println!("{text}");
27 0
28 }
29 Err(err) => map_cli_error(err),
30 }
31}