1 | #include "config.h" |
2 | |
3 | #include "gdbusdaemon.h" |
4 | #include <glib/gi18n.h> |
5 | |
6 | int |
7 | main (int argc, char *argv[]) |
8 | { |
9 | GDBusDaemon *daemon; |
10 | GMainLoop *loop; |
11 | const char *address = NULL; |
12 | const char *config_file = NULL; |
13 | GError *error = NULL; |
14 | gboolean print_address = FALSE; |
15 | gboolean print_env = FALSE; |
16 | GOptionContext *context; |
17 | GOptionEntry entries[] = { |
18 | { "address" , 0, 0, G_OPTION_ARG_STRING, &address, N_("Address to listen on" ), NULL }, |
19 | { "config-file" , 0, 0, G_OPTION_ARG_STRING, &config_file, N_("Ignored, for compat with GTestDbus" ), NULL }, |
20 | { "print-address" , 0, 0, G_OPTION_ARG_NONE, &print_address, N_("Print address" ), NULL }, |
21 | { "print-env" , 0, 0, G_OPTION_ARG_NONE, &print_env, N_("Print address in shell mode" ), NULL }, |
22 | { NULL } |
23 | }; |
24 | |
25 | context = g_option_context_new (parameter_string: "" ); |
26 | g_option_context_set_translation_domain (context, GETTEXT_PACKAGE); |
27 | g_option_context_set_summary (context, |
28 | N_("Run a dbus service" )); |
29 | g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE); |
30 | |
31 | error = NULL; |
32 | if (!g_option_context_parse (context, argc: &argc, argv: &argv, error: &error)) |
33 | { |
34 | g_printerr (format: "%s\n" , error->message); |
35 | return 1; |
36 | } |
37 | |
38 | g_option_context_free (context); |
39 | |
40 | if (argc != 1) |
41 | { |
42 | g_printerr (_("Wrong args\n" )); |
43 | return 1; |
44 | } |
45 | |
46 | |
47 | loop = g_main_loop_new (NULL, FALSE); |
48 | |
49 | if (argc >= 2) |
50 | address = argv[1]; |
51 | |
52 | daemon = _g_dbus_daemon_new (address, NULL, error: &error); |
53 | if (daemon == NULL) |
54 | { |
55 | g_printerr (format: "Can't init bus: %s\n" , error->message); |
56 | return 1; |
57 | } |
58 | |
59 | if (print_env) |
60 | g_print (format: "export DBUS_SESSION_BUS_ADDRESS=\"%s\"\n" , _g_dbus_daemon_get_address (daemon)); |
61 | |
62 | if (print_address) |
63 | g_print (format: "%s\n" , _g_dbus_daemon_get_address (daemon)); |
64 | |
65 | g_main_loop_run (loop); |
66 | |
67 | g_main_loop_unref (loop); |
68 | |
69 | return 0; |
70 | } |
71 | |