diff options
author | Drew DeVault <sir@cmpwn.com> | 2015-12-15 22:08:09 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2015-12-15 22:08:09 -0500 |
commit | f80e7364b1c4e4a449ddf3494783d99429376fb2 (patch) | |
tree | 043e048864d2f93719031f0f270bfe161dc15e9c | |
parent | efff8e5ba5df6da4b64b61d3252743dba7124556 (diff) |
Parse command line in swaybar
-rw-r--r-- | swaybar/main.c | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/swaybar/main.c b/swaybar/main.c index 21e3100b..79635de1 100644 --- a/swaybar/main.c +++ b/swaybar/main.c @@ -8,6 +8,7 @@ #include <sys/un.h> #include <sys/socket.h> #include <sys/ioctl.h> +#include <getopt.h> #include "ipc-client.h" #include "readline.h" #include "client/registry.h" @@ -236,6 +237,44 @@ void render() { int main(int argc, char **argv) { init_log(L_INFO); + + char *socket_path = NULL; + char *bar_id = NULL; + + static struct option long_options[] = { + {"version", no_argument, NULL, 'v'}, + {"socket", required_argument, NULL, 's'}, + {"bar_id", required_argument, NULL, 'b'}, + {0, 0, 0, 0} + }; + + int c; + while (1) { + int option_index = 0; + c = getopt_long(argc, argv, "vs:b:", long_options, &option_index); + if (c == -1) { + break; + } + switch (c) { + case 's': // Socket + socket_path = strdup(optarg); + break; + case 'b': // Type + bar_id = strdup(optarg); + break; + case 'v': +#if defined SWAY_GIT_VERSION && defined SWAY_GIT_BRANCH && defined SWAY_VERSION_DATE + fprintf(stdout, "sway version %s (%s, branch \"%s\")\n", SWAY_GIT_VERSION, SWAY_VERSION_DATE, SWAY_GIT_BRANCH); +#else + fprintf(stdout, "version not detected\n"); +#endif + exit(EXIT_SUCCESS); + break; + default: + exit(EXIT_FAILURE); + } + } + registry = registry_poll(); if (!registry->desktop_shell) { @@ -261,9 +300,11 @@ int main(int argc, char **argv) { line = malloc(1024); line[0] = '\0'; - char *socket_path = get_socketpath(); if (!socket_path) { - sway_abort("Unable to retrieve socket path"); + char *socket_path = get_socketpath(); + if (!socket_path) { + sway_abort("Unable to retrieve socket path"); + } } socketfd = ipc_open_socket(socket_path); bar_ipc_init(desired_output); |