aboutsummaryrefslogtreecommitdiff
path: root/src/utils/disk.rs
blob: 82785b43c62b2040a11d017109b426cbaea213ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
    )
}