replace dotenv_codegen
This commit is contained in:
48
Cargo.lock
generated
48
Cargo.lock
generated
@@ -57,7 +57,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
|||||||
name = "cloudflare-dynamic-dns"
|
name = "cloudflare-dynamic-dns"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dotenv_codegen",
|
"dotenv",
|
||||||
"env_logger",
|
"env_logger",
|
||||||
"log",
|
"log",
|
||||||
"regex",
|
"regex",
|
||||||
@@ -87,29 +87,6 @@ version = "0.15.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f"
|
checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "dotenv_codegen"
|
|
||||||
version = "0.15.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "56966279c10e4f8ee8c22123a15ed74e7c8150b658b26c619c53f4a56eb4a8aa"
|
|
||||||
dependencies = [
|
|
||||||
"dotenv_codegen_implementation",
|
|
||||||
"proc-macro-hack",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "dotenv_codegen_implementation"
|
|
||||||
version = "0.15.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "53e737a3522cd45f6adc19b644ce43ef53e1e9045f2d2de425c1f468abd4cf33"
|
|
||||||
dependencies = [
|
|
||||||
"dotenv",
|
|
||||||
"proc-macro-hack",
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn 1.0.109",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "encoding_rs"
|
name = "encoding_rs"
|
||||||
version = "0.8.32"
|
version = "0.8.32"
|
||||||
@@ -534,7 +511,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.18",
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -579,12 +556,6 @@ version = "0.3.27"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
|
checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "proc-macro-hack"
|
|
||||||
version = "0.5.20+deprecated"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "proc-macro2"
|
name = "proc-macro2"
|
||||||
version = "1.0.60"
|
version = "1.0.60"
|
||||||
@@ -766,17 +737,6 @@ dependencies = [
|
|||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "syn"
|
|
||||||
version = "1.0.109"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"unicode-ident",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "syn"
|
name = "syn"
|
||||||
version = "2.0.18"
|
version = "2.0.18"
|
||||||
@@ -972,7 +932,7 @@ dependencies = [
|
|||||||
"once_cell",
|
"once_cell",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.18",
|
"syn",
|
||||||
"wasm-bindgen-shared",
|
"wasm-bindgen-shared",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -1006,7 +966,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"syn 2.0.18",
|
"syn",
|
||||||
"wasm-bindgen-backend",
|
"wasm-bindgen-backend",
|
||||||
"wasm-bindgen-shared",
|
"wasm-bindgen-shared",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ edition = "2021"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
reqwest = { version = "0.11.16", features = ["blocking"] }
|
reqwest = { version = "0.11.16", features = ["blocking"] }
|
||||||
dotenv_codegen = "0.15.0"
|
dotenv = "0.15.0"
|
||||||
serde_json = "1.0.96"
|
serde_json = "1.0.96"
|
||||||
regex = "1.7.3"
|
regex = "1.7.3"
|
||||||
log = "0.4.17"
|
log = "0.4.17"
|
||||||
|
|||||||
8
Dockerfile
Normal file
8
Dockerfile
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
FROM rust:1.70
|
||||||
|
|
||||||
|
WORKDIR ./src/
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN cargo install --path .
|
||||||
|
|
||||||
|
CMD ["cloudflare-dynamic-dns"]
|
||||||
32
src/main.rs
32
src/main.rs
@@ -1,11 +1,9 @@
|
|||||||
mod errors;
|
mod errors;
|
||||||
mod public_ip;
|
mod public_ip;
|
||||||
|
|
||||||
#[macro_use]
|
use std::{env, thread::sleep, time::Duration};
|
||||||
extern crate dotenv_codegen;
|
|
||||||
|
|
||||||
use std::{thread::sleep, time::Duration};
|
|
||||||
|
|
||||||
|
use dotenv::dotenv;
|
||||||
use log::{error, info};
|
use log::{error, info};
|
||||||
use public_ip::get_public_ip_address;
|
use public_ip::get_public_ip_address;
|
||||||
use reqwest::header::{AUTHORIZATION, CONTENT_TYPE};
|
use reqwest::header::{AUTHORIZATION, CONTENT_TYPE};
|
||||||
@@ -19,12 +17,11 @@ fn main() {
|
|||||||
.filter_level(log::LevelFilter::Info)
|
.filter_level(log::LevelFilter::Info)
|
||||||
.init();
|
.init();
|
||||||
|
|
||||||
let token = dotenv!("AUTH_BEARER");
|
dotenv().ok();
|
||||||
let zone_id = dotenv!("ZONE_ID");
|
let (token, zone_id, domain) = get_and_ensure_env_vars();
|
||||||
let domain = dotenv!("DOMAIN");
|
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
let result = update(token, zone_id, domain);
|
let result = update(&token, &zone_id, &domain);
|
||||||
|
|
||||||
match result {
|
match result {
|
||||||
Ok(_) => (),
|
Ok(_) => (),
|
||||||
@@ -122,3 +119,22 @@ fn update_ip_address(
|
|||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn get_and_ensure_env_vars() -> (String, String, String) {
|
||||||
|
let mut token: Option<String> = Option::None;
|
||||||
|
let mut zone_id: Option<String> = Option::None;
|
||||||
|
let mut domain: Option<String> = Option::None;
|
||||||
|
|
||||||
|
env::vars().for_each(|(key, value)| match key.as_str() {
|
||||||
|
"AUTH_BEARER" => token = Some(String::from(value)),
|
||||||
|
"ZONE_ID" => zone_id = Some(String::from(value)),
|
||||||
|
"DOMAIN" => domain = Some(String::from(value)),
|
||||||
|
_ => {}
|
||||||
|
});
|
||||||
|
|
||||||
|
let token = token.expect("AUTH_BEARER not set");
|
||||||
|
let zone_id = zone_id.expect("ZONE_ID not set");
|
||||||
|
let domain = domain.expect("DOMAIN not set");
|
||||||
|
|
||||||
|
(token, zone_id, domain)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user