Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 12 additions & 8 deletions src/global_config_manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ mod imp {
pub user_config_directory: RefCell<Option<String>>,

pub global_config: RefCell<GlobalConfig>,
pub flatpak_info: RefCell<Ini>,
pub flatpak_info: RefCell<Option<Ini>>,
}

#[glib::object_subclass]
Expand All @@ -81,7 +81,7 @@ mod imp {
gocryptfs_custom_binary: RefCell::new(Some(false)),
gocryptfs_custom_binary_path: RefCell::new(Some("".to_string())),
}),
flatpak_info: RefCell::new(Ini::new()),
flatpak_info: RefCell::new(None),
}
}
}
Expand Down Expand Up @@ -113,8 +113,12 @@ impl GlobalConfigManager {

let object: Self = glib::Object::new();

*object.imp().flatpak_info.borrow_mut() =
Ini::load_from_file("/.flatpak-info").expect("Could not load .flatpak-info");
if let Ok(flatpak_info) = Ini::load_from_file("/.flatpak-info") {
log::debug!("Loaded .flatpak-info successfully");
*object.imp().flatpak_info.borrow_mut() = Some(flatpak_info);
} else {
log::error!("Could not load .flatpak-info");
}

match user_config_dir().as_os_str().to_str() {
Some(user_config_directory) => {
Expand Down Expand Up @@ -246,10 +250,10 @@ impl GlobalConfigManager {
.borrow_mut() = Some(path);
}

pub fn get_flatpak_info(&self) -> Ini {
pub fn get_flatpak_info(&self) -> Option<Ini> {
log::trace!("get_flatpak_info()");

self.imp().flatpak_info.borrow().clone()
self.imp().flatpak_info.borrow().as_ref().cloned()
}

pub fn cryfs_custom_binary(&self) -> bool {
Expand Down Expand Up @@ -345,7 +349,7 @@ impl GlobalConfigManager {
}

pub fn get_cryfs_binary_path(&self) -> Option<String> {
let flatpak_info = self.get_flatpak_info();
let flatpak_info = self.get_flatpak_info()?;
let instance_path = flatpak_info.section(Some("Instance"))?.get("app-path")?;
let cryfs_instance_path = instance_path.to_owned() + "/bin/cryfs";
log::info!("CryFS binary path: {}", cryfs_instance_path);
Expand All @@ -371,7 +375,7 @@ impl GlobalConfigManager {
}

pub fn get_gocryptfs_binary_path(&self) -> Option<String> {
let flatpak_info = self.get_flatpak_info();
let flatpak_info = self.get_flatpak_info()?;
let instance_path = flatpak_info.section(Some("Instance"))?.get("app-path")?;
let gocryptfs_instance_path = instance_path.to_owned() + "/bin/gocryptfs";
log::info!("gocryptfs binary path: {}", gocryptfs_instance_path);
Expand Down