aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt4
-rw-r--r--sway/ipc.c13
2 files changed, 17 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bbf61299..e30b52e0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,12 +22,15 @@ find_package(XKBCommon REQUIRED)
find_package(WLC REQUIRED)
find_package(A2X REQUIRED)
find_package(PCRE REQUIRED)
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(JSON REQUIRED json-c)
FILE(GLOB sources ${PROJECT_SOURCE_DIR}/sway/*.c)
include_directories(
${WLC_INCLUDE_DIRS}
${PCRE_INCLUDE_DIRS}
+ ${JSON_INCLUDE_DIRS}
include/
)
@@ -39,6 +42,7 @@ target_link_libraries(sway
${WLC_LIBRARIES}
${XKBCOMMON_LIBRARIES}
${PCRE_LIBRARIES}
+ ${JSON_LIBRARIES}
)
INSTALL(
diff --git a/sway/ipc.c b/sway/ipc.c
index 0b36d758..c5b72db7 100644
--- a/sway/ipc.c
+++ b/sway/ipc.c
@@ -12,6 +12,7 @@
#include <sys/ioctl.h>
#include <fcntl.h>
#include <ctype.h>
+#include <json-c/json.h>
#include "ipc.h"
#include "log.h"
#include "config.h"
@@ -226,6 +227,18 @@ void ipc_client_handle_command(struct ipc_client *client) {
free(json);
break;
}
+ case IPC_GET_VERSION:
+ {
+ json_object *json = json_object_new_object();
+ json_object_object_add(json, "human_readable", json_object_new_string(SWAY_GIT_VERSION));
+ json_object_object_add(json, "major", json_object_new_int(0));
+ json_object_object_add(json, "minor", json_object_new_int(0));
+ json_object_object_add(json, "patch", json_object_new_int(1));
+ const char *json_string = json_object_to_json_string(json);
+ ipc_send_reply(client, json_string, (uint32_t) strlen(json_string));
+ json_object_put(json); // free
+ break;
+ }
default:
sway_log(L_INFO, "Unknown IPC command type %i", client->current_command);
ipc_client_disconnect(client);