paleofetch

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 034f3e18de1eaae14a996755776fb571b8046e5b
parent 9b4b0852994cf03fc28d789a109719ddaa515e7b
Author: sam-barr <samfbarr@outlook.com>
Date:   Mon, 27 Apr 2020 12:02:51 -0500

Added get_disk_usage_home and get_disk_usage_root

Diffstat:
Mpaleofetch.c | 27+++++++++++++++++++++++++++
Mpaleofetch.h | 2++
2 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/paleofetch.c b/paleofetch.c @@ -8,6 +8,8 @@ #include <sys/utsname.h> #include <sys/sysinfo.h> +#include <sys/statvfs.h> + #include <pci/pci.h> #include <X11/Xlib.h> @@ -38,6 +40,7 @@ struct { } cpu_remove[] = CPU_REMOVE, gpu_remove[] = GPU_REMOVE; Display *display; +struct statvfs file_stats; struct utsname uname_info; struct sysinfo my_sysinfo; int title_length, status; @@ -476,6 +479,30 @@ char *get_memory() { return memory; } +char *get_disk_usage(const char *folder) { + char *disk_usage = malloc(BUF_SIZE); + long total, used, free; + int percentage; + status = statvfs(folder, &file_stats); + halt_and_catch_fire("Error getting disk usage for %s", folder); + total = file_stats.f_blocks * file_stats.f_frsize; + free = file_stats.f_bfree * file_stats.f_frsize; + used = total - free; + percentage = (used / (double) total) * 100; +#define TO_GB(A) ((A) / (1024.0 * 1024 * 1024)) + snprintf(disk_usage, BUF_SIZE, "%.1fGiB / %.1fGiB (%d%%)", TO_GB(used), TO_GB(total), percentage); +#undef TO_GB + return disk_usage; +} + +char *get_disk_usage_root() { + return get_disk_usage("/"); +} + +char *get_disk_usage_home() { + return get_disk_usage("/home"); +} + char *get_colors1() { char *colors1 = malloc(BUF_SIZE); char *s = colors1; diff --git a/paleofetch.h b/paleofetch.h @@ -15,6 +15,8 @@ char *get_title(), *get_gpu1(), *get_gpu2(), *get_memory(), + *get_disk_usage_root(), + *get_disk_usage_home(), *get_colors1(), *get_colors2(), *spacer();