From 717484184f6e8a3bb38f50cc6fbe4fbfb3544cd9 Mon Sep 17 00:00:00 2001 From: Kinware AB Date: Tue, 12 Nov 2013 20:51:23 +0100 Subject: Add support for path_exists directive. --- src/print_path_exists.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/print_path_exists.c (limited to 'src/print_path_exists.c') diff --git a/src/print_path_exists.c b/src/print_path_exists.c new file mode 100644 index 0000000..c5225a1 --- /dev/null +++ b/src/print_path_exists.c @@ -0,0 +1,35 @@ +#include +#include +#include +#include +#include +#include "i3status.h" + +void print_path_exists(yajl_gen json_gen, char *buffer, const char *title, const char *path, const char *format) { + const char *walk; + char *outwalk = buffer; + struct stat st; + const bool exists = (stat(path, &st) == 0); + + INSTANCE(path); + + START_COLOR((exists ? "color_good" : "color_bad")); + + for (walk = format; *walk != '\0'; walk++) { + if (*walk != '%') { + *(outwalk++) = *walk; + continue; + } + + if (strncmp(walk+1, "title", strlen("title")) == 0) { + outwalk += sprintf(outwalk, "%s", title); + walk += strlen("title"); + } else if (strncmp(walk+1, "status", strlen("status")) == 0) { + outwalk += sprintf(outwalk, "%s", (exists ? "yes" : "no")); + walk += strlen("status"); + } + } + + END_COLOR; + OUTPUT_FULL_TEXT(buffer); +} -- cgit v1.2.3