refactor: switch to cli args
This commit is contained in:
25
src/main.rs
25
src/main.rs
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user