mirror of
https://github.com/ilya-zlobintsev/LACT.git
synced 2026-08-19 01:14:43 -05:00
feat: add LACT_PCI_DB_PATH env variable, use pci db from runtime in flatpak service (#558)
This commit is contained in:
@@ -1021,8 +1021,16 @@ async fn apply_config_to_controllers(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn read_pci_db() -> Database {
|
||||
Database::read().unwrap_or_else(|err| {
|
||||
pub(crate) fn read_pci_db() -> Database {
|
||||
let result = if let Some(db_path) = env::var("LACT_PCI_DB_PATH")
|
||||
.ok()
|
||||
.filter(|value| !value.is_empty())
|
||||
{
|
||||
Database::read_from_file(db_path)
|
||||
} else {
|
||||
Database::read()
|
||||
};
|
||||
result.unwrap_or_else(|err| {
|
||||
warn!("could not read PCI ID database: {err}, device information will be limited");
|
||||
Database {
|
||||
vendors: HashMap::new(),
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
mod mock_fs;
|
||||
|
||||
use crate::{config::Config, server::handler::Handler};
|
||||
use crate::{
|
||||
config::Config,
|
||||
server::handler::{read_pci_db, Handler},
|
||||
};
|
||||
use insta::{assert_debug_snapshot, assert_json_snapshot};
|
||||
use lact_schema::config::GpuConfig;
|
||||
use mock_fs::MockSysfs;
|
||||
@@ -20,7 +23,7 @@ async fn snapshot_everything() {
|
||||
init_tracing();
|
||||
|
||||
let test_data_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("src/tests/data");
|
||||
let pci_db = pciid_parser::Database::read().unwrap();
|
||||
let pci_db = read_pci_db();
|
||||
|
||||
for vendor_dir in fs::read_dir(test_data_dir).unwrap().flatten() {
|
||||
for device_dir in fs::read_dir(vendor_dir.path()).unwrap().flatten() {
|
||||
@@ -52,7 +55,7 @@ async fn apply_settings() {
|
||||
let local_set = LocalSet::new();
|
||||
local_set.spawn_local(async move {
|
||||
let test_data_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("src/tests/data");
|
||||
let pci_db = pciid_parser::Database::read().unwrap();
|
||||
let pci_db = read_pci_db();
|
||||
|
||||
for vendor_dir in fs::read_dir(test_data_dir).unwrap().flatten() {
|
||||
for device_dir in fs::read_dir(vendor_dir.path()).unwrap().flatten() {
|
||||
|
||||
+3
-1
@@ -38,7 +38,9 @@ fn generate_daemon_cmd(info: &Ini) -> anyhow::Result<()> {
|
||||
let app_bin_path = format!("{app_path}/bin");
|
||||
let library_paths = format!("{app_path}/lib:{app_path}/drm/lib:{runtime_lib_path}");
|
||||
|
||||
println!("{ld_path} --library-path {library_paths} {app_bin_path}/lact daemon");
|
||||
let pci_db_path = format!("{runtime_path}/share/hwdata/pci.ids");
|
||||
|
||||
println!("env LACT_PCI_DB_PATH={pci_db_path} {ld_path} --library-path {library_paths} {app_bin_path}/lact daemon");
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user