summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Marcher <me@drkhsh.at>2018-05-21 14:07:41 +0200
committerAaron Marcher <me@drkhsh.at>2018-05-21 14:07:41 +0200
commitfa8b939990ed0648f99b0cbeba4efed807160db3 (patch)
tree11faa55b84bbc20e72a0aac91641348cd40b9806
parentaa8654795da19a8d517faf1b84cd4dc4ac75f6e7 (diff)
Add option to output only once and exit
-rw-r--r--slstatus.14
-rw-r--r--slstatus.c13
2 files changed, 13 insertions, 4 deletions
diff --git a/slstatus.1 b/slstatus.1
index da1a99a..9517fab 100644
--- a/slstatus.1
+++ b/slstatus.1
@@ -6,7 +6,7 @@
.Nd suckless status monitor
.Sh SYNOPSIS
.Nm
-.Op Fl s
+.Op Fl so
.Sh DESCRIPTION
.Nm
is a suckless status monitor for window managers that use WM_NAME (e.g. dwm) or
@@ -18,6 +18,8 @@ outputs to WM_NAME.
.Bl -tag -width Ds
.It Fl s
Write to stdout instead of WM_NAME.
+.It Fl o
+Write only once and exit.
.El
.Sh CUSTOMIZATION
.Nm
diff --git a/slstatus.c b/slstatus.c
index 3222b02..b3abafb 100644
--- a/slstatus.c
+++ b/slstatus.c
@@ -42,7 +42,7 @@ difftimespec(struct timespec *res, struct timespec *a, struct timespec *b)
static void
usage(void)
{
- die("usage: %s [-s]", argv0);
+ die("usage: %s [-so]", argv0);
}
int
@@ -51,15 +51,18 @@ main(int argc, char *argv[])
struct sigaction act;
struct timespec start, current, diff, intspec, wait;
size_t i, len;
- int sflag, ret;
+ int sflag, oflag, ret;
char status[MAXLEN];
const char *res;
- sflag = 0;
+ sflag = oflag = 0;
ARGBEGIN {
case 's':
sflag = 1;
break;
+ case 'o':
+ oflag = 1;
+ break;
default:
usage();
} ARGEND
@@ -107,6 +110,10 @@ main(int argc, char *argv[])
XFlush(dpy);
}
+ if (oflag) {
+ done = 1;
+ }
+
if (!done) {
if (clock_gettime(CLOCK_MONOTONIC, &current) < 0) {
die("clock_gettime:");