commit 16716dd1307af81103b40c6a48a028d1328bbdf8
parent fb524b60508dd8adee66ae30e834632fd6b4402c
Author: Aaron Marcher <info@nulltime.net>
Date: Mon, 13 Jun 2016 18:49:50 +0200
added, username, gid, uid
Diffstat:
3 files changed, 68 insertions(+), 0 deletions(-)
diff --git a/config.def.h b/config.def.h
@@ -20,6 +20,7 @@ static unsigned int update_interval = 1;
- disk_total (disk usage in percent) [argument: mountpoint]
- disk_used (disk usage in percent) [argument: mountpoint]
- entropy (available entropy) [argument: NULL]
+- gid (gid of current user) [argument: NULL]
- hostname [argument: NULL]
- ip (ip address) [argument: interface]
- ram_free (ram usage in percent) [argument: NULL]
@@ -27,6 +28,8 @@ static unsigned int update_interval = 1;
- ram_total (ram usage in percent) [argument: NULL]
- ram_used (ram usage in percent) [argument: NULL]
- temp (temperature in degrees) [argument: temperature file]
+- uid (uid of current user) [argument: NULL]
+- username (username of current user) [argument: NULL]
- vol_perc (alsa volume and mute status in percent) [argument: soundcard]
- wifi_perc (wifi signal in percent) [argument: wifi card interface name] */
static const struct arg args[] = {
diff --git a/slstatus.c b/slstatus.c
@@ -8,6 +8,7 @@
#include <limits.h>
#include <locale.h>
#include <netdb.h>
+#include <pwd.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
@@ -257,6 +258,22 @@ entropy(const char *null)
return smprintf("%d", entropy);
}
+/* gid */
+char *
+gid(const char *null)
+{
+ gid_t gid;
+
+ if ((gid = getgid()) < 0) {
+ fprintf(stderr, "Could no get gid.");
+ return smprintf("n/a");
+ } else {
+ return smprintf("%d", gid);
+ }
+
+ return smprintf("n/a");
+}
+
/* hostname */
char *
hostname(const char *null)
@@ -450,6 +467,51 @@ temp(const char *file)
return smprintf("%d°C", temperature / 1000);
}
+/* username */
+char *
+username(const char *null)
+{
+ register struct passwd *pw;
+ register uid_t uid;
+
+ /* get the values */
+ uid = geteuid ();
+ pw = getpwuid (uid);
+
+ /* if it worked, return */
+ if (pw) {
+ return smprintf("%s", pw->pw_name);
+ }
+ else {
+ fprintf(stderr, "Could not get username.\n");
+ return smprintf("n/a");
+ }
+
+ return smprintf("n/a");
+}
+
+/* uid */
+char *
+uid(const char *null)
+{
+ register uid_t uid;
+
+ /* get the values */
+ uid = geteuid ();
+
+ /* if it worked, return */
+ if (uid) {
+ return smprintf("%d", uid);
+ }
+ else {
+ fprintf(stderr, "Could not get uid.\n");
+ return smprintf("n/a");
+ }
+
+ return smprintf("n/a");
+}
+
+
/* alsa volume percentage */
char *
vol_perc(const char *soundcard)
diff --git a/slstatus.h b/slstatus.h
@@ -22,6 +22,7 @@ char *disk_perc(const char *);
char *disk_total(const char *);
char *disk_used(const char *);
char *entropy(const char*);
+char *gid(const char*);
char *hostname(const char *);
char *ip(const char *);
char *ram_free(const char *);
@@ -29,5 +30,7 @@ char *ram_perc(const char *);
char *ram_used(const char *);
char *ram_total(const char *);
char *temp(const char *);
+char *uid(const char*);
+char *username(const char*);
char *vol_perc(const char *);
char *wifi_perc(const char *);