1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use eyre::{bail, eyre};
use std::{
env::consts::{DLL_PREFIX, DLL_SUFFIX},
path::Path,
};
pub use dora_message as message;
pub mod config;
pub mod coordinator_messages;
pub mod daemon_messages;
pub mod descriptor;
pub mod topics;
pub fn adjust_shared_library_path(path: &Path) -> Result<std::path::PathBuf, eyre::ErrReport> {
let file_name = path
.file_name()
.ok_or_else(|| eyre!("shared library path has no file name"))?
.to_str()
.ok_or_else(|| eyre!("shared library file name is not valid UTF8"))?;
if file_name.starts_with("lib") {
bail!("Shared library file name must not start with `lib`, prefix is added automatically");
}
if path.extension().is_some() {
bail!("Shared library file name must have no extension, it is added automatically");
}
let library_filename = format!("{DLL_PREFIX}{file_name}{DLL_SUFFIX}");
let path = path.with_file_name(library_filename);
Ok(path)
}