aboutsummaryrefslogtreecommitdiff
path: root/src/utils/disk.rs
blob: 22509118308157dacb880f9e6d1076da228ab77e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use crate::config::CONFIG;
use crate::types::ThreadsData;

pub fn get_disk() -> ThreadsData {
    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));
    let data = format!(
        "  {}  {}  {}",
        CONFIG.disk.icon, disk_used, CONFIG.seperator
    );
    ThreadsData::Disk(data)
}