Squashed 'suckless/slstatus/' content from commit 675c839

git-subtree-dir: suckless/slstatus
git-subtree-split: 675c83912ea1aca9834448aaa87a040bc9990c52
This commit is contained in:
Alejandro Guerrero 2026-09-27 17:52:02 +02:00
commit 9ae5fa5142
33 changed files with 3048 additions and 0 deletions

59
components/disk.c Normal file
View file

@ -0,0 +1,59 @@
/* See LICENSE file for copyright and license details. */
#include <stdio.h>
#include <sys/statvfs.h>
#include "../slstatus.h"
#include "../util.h"
const char *
disk_free(const char *path)
{
struct statvfs fs;
if (statvfs(path, &fs) < 0) {
warn("statvfs '%s':", path);
return NULL;
}
return fmt_human(fs.f_frsize * fs.f_bavail, 1024);
}
const char *
disk_perc(const char *path)
{
struct statvfs fs;
if (statvfs(path, &fs) < 0) {
warn("statvfs '%s':", path);
return NULL;
}
return bprintf("%d", (int)(100 *
(1 - ((double)fs.f_bavail / (double)fs.f_blocks))));
}
const char *
disk_total(const char *path)
{
struct statvfs fs;
if (statvfs(path, &fs) < 0) {
warn("statvfs '%s':", path);
return NULL;
}
return fmt_human(fs.f_frsize * fs.f_blocks, 1024);
}
const char *
disk_used(const char *path)
{
struct statvfs fs;
if (statvfs(path, &fs) < 0) {
warn("statvfs '%s':", path);
return NULL;
}
return fmt_human(fs.f_frsize * (fs.f_blocks - fs.f_bfree), 1024);
}