Skip to content

Commit

Permalink
other: remaining changes needed to get android to build
Browse files Browse the repository at this point in the history
  • Loading branch information
ClementTsang committed Jun 10, 2023
1 parent 8116b66 commit 104c36d
Show file tree
Hide file tree
Showing 4 changed files with 216 additions and 167 deletions.
26 changes: 12 additions & 14 deletions src/app/data_harvester.rs
Original file line number Diff line number Diff line change
Expand Up @@ -407,20 +407,18 @@ impl DataCollector {
#[inline]
fn update_disks(&mut self) {
if self.widgets_to_harvest.use_disk {
#[cfg(any(target_os = "freebsd", target_os = "linux", target_os = "macos"))]
{
let disk_filter = &self.filters.disk_filter;
let mount_filter = &self.filters.mount_filter;
self.data.disks = disks::get_disk_usage(disk_filter, mount_filter).ok();
}

#[cfg(target_os = "windows")]
{
self.data.disks = Some(disks::get_disk_usage(
&self.sys,
&self.filters.disk_filter,
&self.filters.mount_filter,
));
cfg_if::cfg_if! {
if #[cfg(any(target_os = "freebsd", target_os = "linux", target_os = "macos"))] {
let disk_filter = &self.filters.disk_filter;
let mount_filter = &self.filters.mount_filter;
self.data.disks = disks::get_disk_usage(disk_filter, mount_filter).ok();
} else {
self.data.disks = Some(disks::get_disk_usage(
&self.sys,
&self.filters.disk_filter,
&self.filters.mount_filter,
));
}
}

self.data.io = disks::get_io_usage().ok();
Expand Down
5 changes: 4 additions & 1 deletion src/app/data_harvester/disks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,17 @@ cfg_if! {
} else if #[cfg(target_os = "windows")] {
mod windows;
pub(crate) use self::windows::*;

} else if #[cfg(target_os = "linux")] {
mod unix;
pub(crate) use self::unix::*;
} else if #[cfg(target_os = "macos")] {
mod unix;
pub(crate) use self::unix::*;
} else {
mod other;
pub(crate) use self::other::*;
}
// TODO: Add dummy impls here for other OSes?
}

#[derive(Debug, Clone, Default)]
Expand Down
52 changes: 52 additions & 0 deletions src/app/data_harvester/disks/other.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
//! Fallback disk info using sysinfo.

use sysinfo::{DiskExt, System, SystemExt};

use crate::app::filter::Filter;

use super::{keep_disk_entry, DiskHarvest};

pub(crate) fn get_disk_usage(
sys: &System, disk_filter: &Option<Filter>, mount_filter: &Option<Filter>,
) -> Vec<DiskHarvest> {
let disks = sys.disks();
disks
.iter()
.filter_map(|disk| {
let name = {
let name = disk.name();

if name.is_empty() {
"No Name".to_string()
} else {
name.to_os_string()
.into_string()
.unwrap_or_else(|_| "Name Unavailable".to_string())
}
};

let mount_point = disk
.mount_point()
.as_os_str()
.to_os_string()
.into_string()
.unwrap_or_else(|_| "Mount Unavailable".to_string());

if keep_disk_entry(&name, &mount_point, disk_filter, mount_filter) {
let free_space = disk.available_space();
let total_space = disk.total_space();
let used_space = total_space - free_space;

Some(DiskHarvest {
name,
mount_point,
free_space: Some(free_space),
used_space: Some(used_space),
total_space: Some(total_space),
})
} else {
None
}
})
.collect()
}
Loading

0 comments on commit 104c36d

Please sign in to comment.