diff --git a/contrib/rss.service b/contrib/rss.service index 0ac311e..7d0fb29 100644 --- a/contrib/rss.service +++ b/contrib/rss.service @@ -7,8 +7,6 @@ Type=simple ExecStart=%h/.cargo/bin/rss daemon Restart=on-failure RestartSec=5 -Environment=RSS_CONFIG=%h/.config/rss/config.toml -Environment=RSS_STATE_DIR=%h/.local/share/rss [Install] WantedBy=default.target diff --git a/src/daemon.rs b/src/daemon.rs index b20a222..c79f9cc 100644 --- a/src/daemon.rs +++ b/src/daemon.rs @@ -47,14 +47,7 @@ pub fn run(config_path: String) { } if let Some(parent) = sock_path.parent() { fs::create_dir_all(parent).ok(); - // Make directory group-accessible (rwxrwx---) - if let Ok(dir) = fs::metadata(parent) { - let perm = dir.permissions(); - let mode = perm.mode(); - // set group rwx if owner has it - let group = (mode & 0o700) >> 3; - let _ = fs::set_permissions(parent, fs::Permissions::from_mode(mode | group)); - } + let _ = fs::set_permissions(parent, fs::Permissions::from_mode(0o770)); } // Load config diff --git a/src/state.rs b/src/state.rs index 94194f4..54e374d 100644 --- a/src/state.rs +++ b/src/state.rs @@ -4,14 +4,14 @@ pub fn runtime_dir() -> PathBuf { if let Ok(dir) = std::env::var("RSS_STATE_DIR") { return PathBuf::from(dir); } - if let Ok(dir) = std::env::var("XDG_RUNTIME_DIR") { - return PathBuf::from(dir).join("rss"); + PathBuf::from("/tmp/rss") +} + +pub fn socket_path() -> PathBuf { + if let Ok(p) = std::env::var("RSS_SOCKET") { + return PathBuf::from(p); } - if let Ok(home) = std::env::var("HOME") { - return PathBuf::from(home).join(".local/share/rss"); - } - let user = std::env::var("USER").unwrap_or_else(|_| "unknown".into()); - PathBuf::from(format!("/tmp/rss-{}", user)) + PathBuf::from("/tmp/rss/rss.sock") } pub fn config_dir() -> PathBuf { @@ -24,13 +24,6 @@ pub fn config_dir() -> PathBuf { PathBuf::from("/etc/rss") } -pub fn socket_path() -> PathBuf { - if let Ok(p) = std::env::var("RSS_SOCKET") { - return PathBuf::from(p); - } - runtime_dir().join("rss.sock") -} - pub fn daemon_pid_path() -> PathBuf { runtime_dir().join("daemon.pid") } @@ -40,7 +33,7 @@ pub fn log_path(name: &str) -> PathBuf { } pub fn enabled_path(name: &str) -> PathBuf { - config_dir().join("enabled").join(name) + runtime_dir().join("enabled").join(name) } pub fn write_pid(path: &PathBuf) -> std::io::Result<()> { @@ -68,7 +61,7 @@ pub fn disable(name: &str) { } pub fn list_enabled() -> std::io::Result> { - let dir = config_dir().join("enabled"); + let dir = runtime_dir().join("enabled"); if !dir.exists() { return Ok(Vec::new()); }