From 29b1060c6fc2614dcbfe6edc177944a31f4decd6 Mon Sep 17 00:00:00 2001 From: kotontrion Date: Sun, 9 Jun 2024 20:27:00 +0200 Subject: initial commit --- src/astal-river.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/astal-river.c (limited to 'src/astal-river.c') diff --git a/src/astal-river.c b/src/astal-river.c new file mode 100644 index 0000000..6596eb4 --- /dev/null +++ b/src/astal-river.c @@ -0,0 +1,50 @@ +#include "river.h" +#include "gio/gio.h" +#include +#include + +GMainLoop *loop; + +void print_json(AstalRiverRiver *river) { + JsonNode *json = json_gobject_serialize (G_OBJECT(river)); + + gchar* json_str = json_to_string (json, FALSE); + g_print("%s\n", json_str); + g_free(json); +} + +int main(int argc, char **argv) { + + gboolean daemon = FALSE; + + int opt; + const char *optstring = "d"; + + static struct option long_options[] = { + {"daemon", no_argument, NULL, 'd'}, + {NULL, 0, NULL, 0} + }; + + while ((opt = getopt_long(argc, argv, optstring, long_options, NULL)) != -1) { + switch (opt) { + case 'd': + daemon = TRUE; + break; + default: + g_print("Usage: %s [-d]\n", argv[0]); + exit(EXIT_FAILURE); + } + } + + AstalRiverRiver *river = astal_river_river_new (); + if(daemon) { + loop = g_main_loop_new (NULL, FALSE); + g_signal_connect(river, "changed", G_CALLBACK(print_json), NULL); + g_main_loop_run (loop); + } + else { + print_json (river); + g_object_unref(river); + } + +} -- cgit v1.2.3