Introduction
Introduction Statistics Contact Development Disclaimer Help
New component: cat - slstatus - status monitor
git clone git://git.suckless.org/slstatus
Log
Files
Refs
README
LICENSE
---
commit 57c6e7340d16b14d61f9e3361ca4940f53dfcafa
parent 4bd78c94ba90d67a268c092231b85037c94a339a
Author: drkhsh <[email protected]>
Date: Wed, 23 Nov 2022 23:59:51 +0100
New component: cat
Generically reads an arbitrary file natively.
Saves a few layers of execution in comparison to using `run_command`
with an argument like `cat ./file`.
Diffstat:
M Makefile | 1 +
M README | 1 +
A components/cat.c | 32 +++++++++++++++++++++++++++++…
M config.def.h | 1 +
M slstatus.h | 3 +++
5 files changed, 38 insertions(+), 0 deletions(-)
---
diff --git a/Makefile b/Makefile
@@ -7,6 +7,7 @@ include config.mk
REQ = util
COM =\
components/battery\
+ components/cat\
components/cpu\
components/datetime\
components/disk\
diff --git a/README b/README
@@ -7,6 +7,7 @@ slstatus is a suckless status monitor for window managers that …
Features
--------
- Battery percentage/state/time left
+- Cat (read file)
- CPU usage
- CPU frequency
- Custom shell commands
diff --git a/components/cat.c b/components/cat.c
@@ -0,0 +1,32 @@
+/* See LICENSE file for copyright and license details. */
+#include <stdio.h>
+#include <string.h>
+
+#include "../slstatus.h"
+#include "../util.h"
+
+const char *
+cat(const char *path)
+{
+ char *f;
+ FILE *fp;
+
+ if (!(fp = fopen(path, "r"))) {
+ warn("fopen '%s':", path);
+ return NULL;
+ }
+
+ f = fgets(buf, sizeof(buf) - 1, fp);
+ if (fclose(fp) < 0) {
+ warn("fclose '%s':", path);
+ return NULL;
+ }
+ if (!f)
+ return NULL;
+
+ if ((f = strrchr(buf, '\n')))
+ f[0] = '\0';
+
+ return buf[0] ? buf : NULL;
+}
+
diff --git a/config.def.h b/config.def.h
@@ -18,6 +18,7 @@ static const char unknown_str[] = "n/a";
* NULL on OpenBSD/FreeBSD
* battery_remaining battery remaining HH:MM battery name (BAT0)
* NULL on OpenBSD/FreeBSD
+ * cat read arbitrary file path
* cpu_perc cpu usage in percent NULL
* cpu_freq cpu frequency in MHz NULL
* datetime date and time format string (%F %T)
diff --git a/slstatus.h b/slstatus.h
@@ -5,6 +5,9 @@ const char *battery_perc(const char *);
const char *battery_state(const char *);
const char *battery_remaining(const char *);
+/* cat */
+const char *cat(const char *path);
+
/* cpu */
const char *cpu_freq(const char *unused);
const char *cpu_perc(const char *unused);
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.