URL and credentials from env for stalwart-cli (closes #88)
This commit is contained in:
@@ -44,9 +44,18 @@ pub mod modules;
|
||||
#[tokio::main]
|
||||
async fn main() -> std::io::Result<()> {
|
||||
let args = Cli::parse();
|
||||
let url = args
|
||||
.url
|
||||
.or_else(|| std::env::var("URL").ok())
|
||||
.unwrap_or_else(|| {
|
||||
eprintln!("No URL specified. Use --url or set the URL environment variable.");
|
||||
std::process::exit(1);
|
||||
});
|
||||
let client = Client {
|
||||
credentials: if let Some(credentials) = args.credentials {
|
||||
parse_credentials(&credentials)
|
||||
} else if let Ok(credentials) = std::env::var("CREDENTIALS") {
|
||||
parse_credentials(&credentials)
|
||||
} else {
|
||||
let credentials = rpassword::prompt_password(
|
||||
"\nEnter administrator credentials or press [ENTER] to use OAuth: ",
|
||||
@@ -55,11 +64,11 @@ async fn main() -> std::io::Result<()> {
|
||||
if !credentials.is_empty() {
|
||||
parse_credentials(&credentials)
|
||||
} else {
|
||||
oauth(&args.url).await
|
||||
oauth(&url).await
|
||||
}
|
||||
},
|
||||
timeout: args.timeout,
|
||||
url: args.url,
|
||||
url,
|
||||
};
|
||||
|
||||
match args.command {
|
||||
|
||||
@@ -34,7 +34,7 @@ pub struct Cli {
|
||||
pub command: Commands,
|
||||
/// Server base URL
|
||||
#[clap(short, long)]
|
||||
pub url: String,
|
||||
pub url: Option<String>,
|
||||
/// Authentication credentials
|
||||
#[clap(short, long)]
|
||||
pub credentials: Option<String>,
|
||||
|
||||
Reference in New Issue
Block a user