mirror of
https://github.com/Llewellynvdm/conky.git
synced 2024-11-18 02:55:12 +00:00
Add support for $distribution
This commit is contained in:
parent
a734f86071
commit
5ef6de8822
@ -33,6 +33,8 @@
|
||||
#include <sys/socket.h>
|
||||
#include "text_object.h"
|
||||
|
||||
char* readfile(const char* filename, int* total_read, char showerror);
|
||||
|
||||
void print_to_bytes(struct text_object *, char *, int);
|
||||
|
||||
void add_update_callback(void (*func)(void));
|
||||
|
@ -1037,6 +1037,8 @@ struct text_object *construct_text_object(char *s, const char *arg, long
|
||||
END OBJ(processes, &update_total_processes)
|
||||
obj->callbacks.print = &print_processes;
|
||||
#ifdef __linux__
|
||||
END OBJ(distribution, 0)
|
||||
obj->callbacks.print = &print_distribution;
|
||||
END OBJ(running_processes, &update_top)
|
||||
top_running = 1;
|
||||
obj->callbacks.print = &print_running_processes;
|
||||
|
30
src/linux.cc
30
src/linux.cc
@ -2371,3 +2371,33 @@ void update_diskio(void)
|
||||
update_diskio_values(&stats, total_reads, total_writes);
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
void print_distribution(struct text_object *obj, char *p, int p_max_size)
|
||||
{
|
||||
(void)obj;
|
||||
int i, bytes_read;
|
||||
char* buf = readfile("/proc/version", &bytes_read, 1);
|
||||
|
||||
snprintf(p, p_max_size, "Unknown");
|
||||
if(buf) {
|
||||
/* I am assuming the distribution name is the first string in /proc/version that:
|
||||
- is preceded by a '('
|
||||
- starts with a capital
|
||||
- is followed by a space and a number
|
||||
but i am not sure if this is always true... */
|
||||
for(i=1; i<bytes_read; i++) {
|
||||
if(buf[i-1] == '(' && buf[i] >= 'A' && buf[i] <= 'Z') break;
|
||||
}
|
||||
if(i < bytes_read) {
|
||||
snprintf(p, p_max_size, &buf[i]);
|
||||
for(i=1; p[i]; i++) {
|
||||
if(p[i-1] == ' ' && p[i] >= '0' && p[i] <= '9') {
|
||||
p[i-1] = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
free(buf);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -53,4 +53,6 @@ int get_entropy_poolsize(unsigned int *);
|
||||
|
||||
void update_stat(void);
|
||||
|
||||
void print_distribution(struct text_object *, char *, int);
|
||||
|
||||
#endif /* _LINUX_H */
|
||||
|
@ -37,7 +37,7 @@
|
||||
#include <dirent.h>
|
||||
#include <memory>
|
||||
|
||||
char* readfile(char* filename, int* total_read, char showerror) {
|
||||
char* readfile(const char* filename, int* total_read, char showerror) {
|
||||
FILE* file;
|
||||
char* buf = NULL;
|
||||
int bytes_read;
|
||||
|
Loading…
Reference in New Issue
Block a user