diff options
Diffstat (limited to 'src/utils/disk.rs')
-rw-r--r-- | src/utils/disk.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/utils/disk.rs b/src/utils/disk.rs new file mode 100644 index 0000000..82785b4 --- /dev/null +++ b/src/utils/disk.rs @@ -0,0 +1,18 @@ +use crate::types::Config; + +// getting disk usage +pub fn get_disk(config: &Config) -> String { + const GB: u64 = (1024 * 1024) * 1024; + let statvfs = nix::sys::statvfs::statvfs("/").unwrap(); + let mut disk_used = String::new(); + + let total = (statvfs.blocks() * statvfs.fragment_size()) / GB; + let available = (statvfs.blocks_free() * statvfs.fragment_size()) / GB; + let used = total - available; + + disk_used.push_str(&format!("{}G", used)); + format!( + " {} {} {}", + config.disk.icon, disk_used, config.seperator + ) +} |