From a2cf32213537b0b8e7d5fe9d9951bb9aa25ec61c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?= Date: Sun, 1 Jan 2023 22:51:26 +0100 Subject: [PATCH] fix: don't use XDG spec, because this is a system service --- Cargo.lock | 32 -------------------------------- Cargo.toml | 1 - README.md | 5 ++--- src/main.rs | 10 ++++------ 4 files changed, 6 insertions(+), 42 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1921c3c..97a2381 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -123,7 +123,6 @@ version = "0.4.0" dependencies = [ "anyhow", "cloudflare", - "directories-next", "env_logger", "log", "reqwest", @@ -237,27 +236,6 @@ dependencies = [ "syn", ] -[[package]] -name = "directories-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - [[package]] name = "encoding_rs" version = "0.8.31" @@ -837,16 +815,6 @@ dependencies = [ "bitflags", ] -[[package]] -name = "redox_users" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" -dependencies = [ - "getrandom", - "redox_syscall", -] - [[package]] name = "regex" version = "1.7.0" diff --git a/Cargo.toml b/Cargo.toml index af0bf16..8f66574 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,6 @@ serde = { version = "1.0.152", features = ["derive"] } anyhow = "1.0.68" env_logger = "0.10.0" log = "0.4.17" -directories-next = "2.0.0" tokio = { version = "1.23.0", features = ["time", "macros", "rt-multi-thread"] } serde_yaml = "0.9.16" cloudflare = "0.10.1" diff --git a/README.md b/README.md index 15c2a79..8ac9f3b 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,8 @@ cargo install cloudflare-ddns-service ## Usage ### Config -The services adheres to the XDG spec for locating the config file. In most -cases, that means the config file is located at -`~/.config/cloudflare-ddns-service/config.yaml`. +`cloudflare-ddns-service` expects to find a config file at +`/etc/cloudflare-ddns-service/config.yml`. As you can see from the path, the configuration should be a yaml file. A sample could look like this: diff --git a/src/main.rs b/src/main.rs index c82ef6d..d48e406 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,6 @@ mod network; use anyhow::{Context, Result}; -use directories_next::ProjectDirs; use network::{get_current_ipv4, get_current_ipv6, get_record, get_zone, update_record}; use serde::{Deserialize, Serialize}; use serde_yaml::{from_str, to_writer}; @@ -44,16 +43,15 @@ struct Cache { async fn main() -> Result<()> { env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init(); - let dirs = ProjectDirs::from("re", "jcg", "cloudflare-ddns-service") - .context("Couldn't find project directories! Is $HOME set?")?; - let config_string = read_to_string(dirs.config_dir().join("config.yaml")) + let config_string = read_to_string("/etc/cloudflare-ddns-service/config.yaml") .context("couldn't read config file!")?; let config: Config = from_str(&config_string)?; - let cache_path = dirs.cache_dir().join("cache.yaml"); + let cache_dir = PathBuf::from("/var/cache/cloudflare-ddns-service"); + let cache_path = cache_dir.join("cache.yaml"); let mut cache = match read_to_string(&cache_path) { Ok(cache) => from_str(&cache)?, Err(_) => { - create_dir_all(dirs.cache_dir())?; + create_dir_all(cache_dir)?; Cache::default() } };