From 272d950baed7ebeac53388725cee12e3007959a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Wo=C5=BAniak?= Date: Fri, 14 Jun 2024 12:28:32 +0200 Subject: [PATCH] Fix directories and add service files --- 7dtd-daemon.service | 14 +++++++++++ Cargo.lock | 60 ++++++++++++++++++++++----------------------- daemon/Cargo.toml | 2 +- daemon/src/main.rs | 1 + mod_list/src/lib.rs | 24 +++++++++--------- server.service | 15 ++++++++++++ server/Cargo.toml | 2 +- 7 files changed, 74 insertions(+), 44 deletions(-) create mode 100644 7dtd-daemon.service create mode 100644 server.service diff --git a/7dtd-daemon.service b/7dtd-daemon.service new file mode 100644 index 0000000..31c147e --- /dev/null +++ b/7dtd-daemon.service @@ -0,0 +1,14 @@ +[Unit] +Description=Synchronize 7dtd mods +After=sysinit.target local-fs.target + +[Service] +Restart=on-failure +RestartSec=4 + +ExecStart=/usr/bin/sync-7dtd-daemon + +Environment=RUST_LOG=ERROR + +[Install] +WantedBy=multi-user.target diff --git a/Cargo.lock b/Cargo.lock index 262a63d..20b61d5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -142,21 +142,6 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" -[[package]] -name = "daemon" -version = "0.1.0" -dependencies = [ - "directories", - "mod_list", - "postcard", - "serde", - "tokio", - "tracing", - "tracing-subscriber", - "urlencoded", - "urlencoding", -] - [[package]] name = "derive_more" version = "0.99.17" @@ -494,21 +479,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41f5c9112cb662acd3b204077e0de5bc66305fa8df65c8019d5adb10e9ab6e58" -[[package]] -name = "mods-server" -version = "0.1.0" -dependencies = [ - "futures-util", - "heapless 0.8.0", - "mod_list", - "postcard", - "serde", - "tokio", - "tracing", - "tracing-subscriber", - "urlencoding", -] - [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -976,6 +946,36 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync-7dtd-daemon" +version = "0.1.0" +dependencies = [ + "directories", + "mod_list", + "postcard", + "serde", + "tokio", + "tracing", + "tracing-subscriber", + "urlencoded", + "urlencoding", +] + +[[package]] +name = "sync-7dtd-server" +version = "0.1.0" +dependencies = [ + "futures-util", + "heapless 0.8.0", + "mod_list", + "postcard", + "serde", + "tokio", + "tracing", + "tracing-subscriber", + "urlencoding", +] + [[package]] name = "thiserror" version = "1.0.61" diff --git a/daemon/Cargo.toml b/daemon/Cargo.toml index f2828e9..1eb4460 100644 --- a/daemon/Cargo.toml +++ b/daemon/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "daemon" +name = "sync-7dtd-daemon" version = "0.1.0" edition = "2021" diff --git a/daemon/src/main.rs b/daemon/src/main.rs index eb5ee53..0068b8e 100644 --- a/daemon/src/main.rs +++ b/daemon/src/main.rs @@ -128,6 +128,7 @@ async fn main() { .expect("Failed to create mod file parent dir"); }; + tracing::info!("Writing file: {file_path:?}"); if let Err(e) = tokio::fs::write(file_path, &buffer).await { tracing::warn!("Unable to save {f:?}: {e}"); break; diff --git a/mod_list/src/lib.rs b/mod_list/src/lib.rs index 307e361..ef08173 100644 --- a/mod_list/src/lib.rs +++ b/mod_list/src/lib.rs @@ -102,14 +102,14 @@ pub async fn refresh_mod_list(dir: PathBuf, mod_list: ModList) -> std::io::Resul let Some(name) = f.file_name().to_str().map(String::from) else { continue; }; - let date = meta.modified()?; let mut files = Vec::with_capacity(1024); - let file = ModFileInfo { - path: file_relative(&dir_string, f.path()), - ts: date, - }; - files.push(file); + // let date = meta.modified()?; + // let file = ModFileInfo { + // path: file_relative(&dir_string, f.path()), + // ts: date, + // }; + // files.push(file); read_rec(&dir_string, f.path(), &mut files)?; let newest = files @@ -141,12 +141,12 @@ fn read_rec(dir: &str, path: PathBuf, res: &mut Vec) -> std::io::Re let f = f?; let meta = f.metadata()?; if meta.is_dir() { - let date = meta.modified()?; - let file = ModFileInfo { - path: file_relative(dir, f.path()), - ts: date, - }; - res.push(file); + // let date = meta.modified()?; + // let file = ModFileInfo { + // path: file_relative(dir, f.path()), + // ts: date, + // }; + // res.push(file); read_rec(&dir, f.path(), res)?; } else if meta.is_file() { let date = meta.modified()?; diff --git a/server.service b/server.service new file mode 100644 index 0000000..12be140 --- /dev/null +++ b/server.service @@ -0,0 +1,15 @@ +[Unit] +Description=7dtd sync server +After=sysinit.target local-fs.target + +[Service] +Restart=on-failure +RestartSec=4 + +ExecStart=/usr/bin/sync-7dtd-server + +Environment=RUST_LOG=ERROR +Environment=7DTD_MODS_DIR=/home/7dtd/server/Mods + +[Install] +WantedBy=multi-user.target diff --git a/server/Cargo.toml b/server/Cargo.toml index b49e677..72390d2 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "mods-server" +name = "sync-7dtd-server" version = "0.1.0" edition = "2021"