rsblocks/src/utils/disk.rs
2021-02-03 03:42:05 +03:00

20 lines
600 B
Rust

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)
}