distro name
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
13
src/sys.c
13
src/sys.c
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user