|
|
@@ -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)
|