Change:
<ins> diff --git a/dim-core/src/routes/settings.rs b/dim-core/src/routes/settings.rs index f577eaf6..67da9448 100644 --- a/dim-core/src/routes/settings.rs +++ b/dim-core/src/routes/settings.rs @@ -1,5 +1,3 @@ -use crate::utils::ffpath; - use std::error::Error; use std::fs::File; use std::fs::OpenOptions; @@ -49,7 +47,7 @@ impl Default for GlobalSettings { } } }, -            metadata_dir: ffpath("config/metadata"), +            metadata_dir: "config/metadata".into(), quiet_boot: false, disable_auth: false, verbose: false, @@ -69,7 +67,7 @@ pub fn get_global_settings() -> GlobalSettings { } pub fn init_global_settings(path: Option<String>) -> Result<(), Box<dyn Error>> { -    let path = path.unwrap_or(ffpath("config/config.toml")); +    let path = path.unwrap_or("config/config.toml".into()); let _ = SETTINGS_PATH.set(path.clone()); let mut content = String::new(); @@ -94,7 +92,7 @@ pub fn set_global_settings(settings: GlobalSettings) -> Result<(), Box<dyn Error let path = SETTINGS_PATH .get() .cloned() -        .unwrap_or(ffpath("config/config.toml")); +        .unwrap_or("config/config.toml".into()); { let mut lock = GLOBAL_SETTINGS.lock().unwrap(); @@ -107,4 +105,4 @@ pub fn set_global_settings(settings: GlobalSettings) -> Result<(), Box<dyn Error .unwrap(); Ok(()) -}  No newline at end of file +} diff --git a/dim-core/src/streaming/mod.rs b/dim-core/src/streaming/mod.rs index a9312041..8ad12fe4 100644 --- a/dim-core/src/streaming/mod.rs +++ b/dim-core/src/streaming/mod.rs @@ -1,27 +1,13 @@ pub mod ffprobe; -use cfg_if::cfg_if; - use std::collections::HashMap; use std::sync::Arc; use std::sync::RwLock; -use crate::utils::ffpath; - lazy_static::lazy_static! { pub static ref STREAMING_SESSION: Arc<RwLock<HashMap<String, HashMap<String, String>>>> = Arc::new(RwLock::new(HashMap::new())); -    pub static ref FFMPEG_BIN: &'static str = Box::leak(ffpath("utils/ffmpeg").into_boxed_str()); -    pub static ref FFPROBE_BIN: &'static str = { -        cfg_if! { -            if #[cfg(test)] { -                "/usr/bin/ffprobe" -            } else if #[cfg(bench)] { -                "/usr/bin/ffprobe" -            } else { -                Box::leak(ffpath("utils/ffprobe").into_boxed_str()) -            } -        } -    }; +    pub static ref FFMPEG_BIN: &'static str = "ffmpeg"; +    pub static ref FFPROBE_BIN: &'static str = "ffprobe"; } use std::process::Command; diff --git a/dim-database/src/lib.rs b/dim-database/src/lib.rs index de99a5e4..ac9731be 100644 --- a/dim-database/src/lib.rs +++ b/dim-database/src/lib.rs @@ -1,8 +1,6 @@ // FIXME: We have a shim in dim/utils but we cant depend on dim because itd be a circular dep. #![deny(warnings)] -use crate::utils::ffpath; - use std::str::FromStr; use std::sync::atomic::AtomicBool; use std::sync::atomic::Ordering; @@ -157,13 +155,13 @@ pub async fn get_conn_logged() -> sqlx::Result<DbConnection> { async fn internal_get_conn() -> sqlx::Result<DbConnection> { let rw_only = sqlx::sqlite::SqliteConnectOptions::new() .create_if_missing(true) -        .filename(ffpath("config/dim.db")) +        .filename("config/dim.db") .connect() .await?; let rd_only = sqlx::pool::PoolOptions::new() .connect_with( -            sqlx::sqlite::SqliteConnectOptions::from_str(ffpath("config/dim.db"))? +            sqlx::sqlite::SqliteConnectOptions::from_str("config/dim.db")? .read_only(true) .synchronous(sqlx::sqlite::SqliteSynchronous::Normal) .create_if_missing(true), diff --git a/dim-database/src/utils.rs b/dim-database/src/utils.rs index 35e25c6c..e1e56e01 100644 --- a/dim-database/src/utils.rs +++ b/dim-database/src/utils.rs @@ -16,17 +16,3 @@ macro_rules! opt_update { } } } - -#[cfg(not(debug_assertions))] -pub fn ffpath(bin: impl AsRef<str>) -> &'static str { -    let mut path = std::env::current_exe().expect("Failed to grab path to the `dim` binary."); -    path.pop(); // remove the dim bin to get the dir of `dim` -    path.push(bin.as_ref()); - -    Box::leak(path.to_string_lossy().to_string().into_boxed_str()) -} - -#[cfg(debug_assertions)] -pub fn ffpath(bin: impl AsRef<str>) -> &'static str { -    Box::leak(bin.as_ref().to_string().into_boxed_str()) -} diff --git a/dim-utils/src/lib.rs b/dim-utils/src/lib.rs index 816bfe82..6dddc9aa 100644 --- a/dim-utils/src/lib.rs +++ b/dim-utils/src/lib.rs @@ -400,20 +400,6 @@ pub fn secs_to_pretty(t: u64) -> String { tag } -#[cfg(not(debug_assertions))] -pub fn ffpath(bin: impl AsRef<str>) -> String { -    let mut path = std::env::current_exe().expect("Failed to grab path to the `dim` binary."); -    path.pop(); // remove the dim bin to get the dir of `dim` -    path.push(bin.as_ref()); - -    path.to_string_lossy().to_string() -} - -#[cfg(debug_assertions)] -pub fn ffpath(bin: impl AsRef<str>) -> String { -    bin.as_ref().to_string() -} - pub fn codec_pretty(codec: &str) -> String { match codec { "h264" => "H.264".into(), diff --git a/dim/src/main.rs b/dim/src/main.rs index 867d64de..e683b441 100644 --- a/dim/src/main.rs +++ b/dim/src/main.rs @@ -18,12 +18,12 @@ struct Args { fn main() { let args = Args::parse(); -    let _ = std::fs::create_dir_all(dim::utils::ffpath("config")); +    let _ = std::fs::create_dir_all("config"); let config_path = args .config .map(|x| x.to_string_lossy().to_string()) -        .unwrap_or(dim::utils::ffpath("config/config.toml")); +        .unwrap_or("config/config.toml".into()); // initialize global settings. dim::init_global_settings(Some(config_path)).expect("Failed to initialize global settings."); </ins>

Discussion:
Project description Dim is a self-hosted media manager. With minimal setup, Dim will organize and beautify your media collections, letting you access and play them anytime from anywhere. Metadata homepage URL: source URL: license: GNU General Public License v2.0 platforms: Unix
Not sure if it is at all useful but I have been trying (failing) to make a flake for this. So far I have But I get
I have gotten it to work. Steps to reproduce: a with the content below
I'll try to make a normal and a module at some point when I have time.
entirely unrelated, but if you're good at packaging applications with would you mind taking a look at if you get a chance? :heart:
I marked this as stale due to inactivity. &rarr;
I have this ready to go, will open a PR later today.