distro name

This commit is contained in:
2026-09-01 21:22:44 +02:00
parent 739c62effa
commit 3ecdc57309
3 changed files with 19 additions and 3 deletions

View File

@@ -39,6 +39,8 @@ char *sys_get_date_string(char *buf, size_t bufsz, time_t t);
void sys_get_load_avg(double *load_avg);
void sys_get_distro(char* name, char* ver_str);
void sys_get_ram(struct memory_t *ram);
void sys_get_disk(struct disk_t *disk);

View File

@@ -102,9 +102,10 @@ static void *display_thread(void *arg) {
lcd_set_backlight(&lcd, true);
lcd_set_contrast(&lcd, lcd_contrast);
lcd_write_buf(&lcd, 0, 14, "linuxSmartie");
lcd_writef(&lcd, 0, 2, "git hash:");
lcd_writef(&lcd, 0, 3, "%s", GIT_HASH);
char name[64], ver[64];
sys_get_distro(name, ver);
lcd_writef(&lcd, 0, 0, "%s %s", name, ver);
lcd_writef(&lcd, 0, 3, "linuxSmartie %s", GIT_HASH);
lcd_flush_buf(&lcd);
lcd_clear_buf(&lcd);
struct timespec next;

View File

@@ -28,6 +28,19 @@ void sys_get_load_avg(double *load_avg) {
getloadavg(load_avg, 3);
}
void sys_get_distro(char* name, char* ver_str) {
char buf[128];
FILE *f = fopen("/etc/os-release", "r");
if (f == nullptr)
return;
while (fgets(buf, sizeof(buf), f)) {
sscanf(buf, "NAME=\"%s\"", name); // NOLINT we live dangerously
sscanf(buf, "VERSION=\"%s\"", ver_str); // NOLINT (its not really that dangerous)
}
fclose(f);
}
void sys_get_ram(struct memory_t *ram) {
char buf[64];
memset(ram, 0, sizeof(struct memory_t)); // zero out all values so we dont break out of the loop early