From 810cb8655fc97ce19db5f9190cb390f655d0f0d2 Mon Sep 17 00:00:00 2001 From: xAlpharax <42233094+xAlpharax@users.noreply.github.com> Date: Mon, 14 Aug 2023 20:40:34 +0300 Subject: Initial fork from https://git.suckless.org/slstatus Changes to be committed: new file: LICENSE new file: Makefile new file: README new file: arg.h new file: components/battery.c new file: components/cat.c new file: components/cpu.c new file: components/datetime.c new file: components/disk.c new file: components/entropy.c new file: components/hostname.c new file: components/ip.c new file: components/kernel_release.c new file: components/keyboard_indicators.c new file: components/keymap.c new file: components/load_avg.c new file: components/netspeeds.c new file: components/num_files.c new file: components/ram.c new file: components/run_command.c new file: components/swap.c new file: components/temperature.c new file: components/uptime.c new file: components/user.c new file: components/volume.c new file: components/wifi.c new file: config.def.h new file: config.mk new file: slstatus.1 new file: slstatus.c new file: slstatus.h new file: util.c new file: util.h --- components/disk.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 components/disk.c (limited to 'components/disk.c') diff --git a/components/disk.c b/components/disk.c new file mode 100644 index 0000000..e19a693 --- /dev/null +++ b/components/disk.c @@ -0,0 +1,59 @@ +/* See LICENSE file for copyright and license details. */ +#include +#include + +#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); +} -- cgit v1.2.3