Add option to output only once and exit
authorAaron Marcher <me@drkhsh.at>
Mon, 21 May 2018 12:07:41 +0000 (14:07 +0200)
committerAaron Marcher <me@drkhsh.at>
Mon, 21 May 2018 12:07:41 +0000 (14:07 +0200)
slstatus.1
slstatus.c

index da1a99a6b6ffeee037785ea4de80ad7fc5a1b07e..9517fabc1c2951e2f5f85c1d946ef34e67b7ee1b 100644 (file)
@@ -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
index 3222b02375d06301e1347ccc7df992c4fac694bf..b3abafb43b103d293aca54436b89dbe6c3044107 100644 (file)
@@ -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:");