use clap::Parser;
use fars::ApiKey;
use fars::Config;
use fars::Email;
use fars::Password;
#[derive(Parser)]
struct Arguments {
#[arg(short, long)]
email: String,
#[arg(short, long)]
password: String,
#[arg(short, long)]
new_password: String,
}
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let arguments = Arguments::parse();
let api_key = ApiKey::new(std::env::var("FIREBASE_API_KEY")?);
let config = Config::new(api_key);
let session = config
.sign_in_with_email_password(
Email::new(arguments.email.clone()),
Password::new(arguments.password.clone()),
)
.await?;
let session = session
.change_password(Password::new(
arguments.new_password.clone(),
))
.await?;
println!(
"Succeeded to change password: {:?}",
session
);
Ok(())
}