diff options
author | kotontrion <[email protected]> | 2024-06-09 20:27:00 +0200 |
---|---|---|
committer | kotontrion <[email protected]> | 2024-06-09 20:27:00 +0200 |
commit | 29b1060c6fc2614dcbfe6edc177944a31f4decd6 (patch) | |
tree | 5e0b0305206f6499edeffe5152267e4ad96b88b0 /src/astal-river.c |
initial commit
Diffstat (limited to 'src/astal-river.c')
-rw-r--r-- | src/astal-river.c | 50 |
1 files changed, 50 insertions, 0 deletions
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 <getopt.h> +#include <json-glib/json-glib.h> + +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); + } + +} |