refactor: switch to cli args

This commit is contained in:
2023-04-07 19:04:46 -07:00
parent 5d835ace6b
commit ffdbd30c39
3 changed files with 146 additions and 16 deletions

View File

@@ -1,12 +1,21 @@
use dotenv;
use clap::Parser;
use reqwest;
fn main() -> Result<(), reqwest::Error> {
dotenv::from_filename(".env.local").expect("No environment variables found");
#[derive(Parser)]
#[command(version)]
struct Args {
#[arg(short, long)]
domain: String,
let domain = std::env::var("GOOGLE_DOMAINS_DOMAIN").expect("GOOGLE_DOMAINS_DOMAIN is required");
let username = std::env::var("GOOGLE_DOMAINS_USERNAME").expect("GOOGLE_DOMAINS_USERNAME is required");
let password = std::env::var("GOOGLE_DOMAINS_PASSWORD").expect("GOOGLE_DOMAINS_PASSWORD is required");
#[arg(short, long)]
username: String,
#[arg(short, long)]
password: String,
}
fn main() -> Result<(), reqwest::Error> {
let args = Args::parse();
let ip = reqwest::blocking::get("https://domains.google.com/checkip")?.text()?;
println!("{}", ip);
@@ -15,9 +24,9 @@ fn main() -> Result<(), reqwest::Error> {
let update_response = client
.get(format!(
"https://domains.google.com/nic/update?hostname={}&myip={}",
domain, ip
args.domain, ip
))
.basic_auth(username, Some(password))
.basic_auth(args.username, Some(args.password))
.send()?
.text()?;
println!("{}", update_response);