fix: don't use XDG spec, because this is a system service
This commit is contained in:
parent
f84046fd13
commit
a2cf322135
32
Cargo.lock
generated
32
Cargo.lock
generated
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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:
|
||||
|
|
10
src/main.rs
10
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()
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue