| #include "config.h" |
| |
| #include "gdbusdaemon.h" |
| #include <glib/gi18n.h> |
| |
| int |
| main (int argc, char *argv[]) |
| { |
| GDBusDaemon *daemon; |
| GMainLoop *loop; |
| const char *address = NULL; |
| const char *config_file = NULL; |
| GError *error = NULL; |
| gboolean print_address = FALSE; |
| gboolean print_env = FALSE; |
| GOptionContext *context; |
| GOptionEntry entries[] = { |
| { "address", 0, 0, G_OPTION_ARG_STRING, &address, N_("Address to listen on"), NULL }, |
| { "config-file", 0, 0, G_OPTION_ARG_STRING, &config_file, N_("Ignored, for compat with GTestDbus"), NULL }, |
| { "print-address", 0, 0, G_OPTION_ARG_NONE, &print_address, N_("Print address"), NULL }, |
| { "print-env", 0, 0, G_OPTION_ARG_NONE, &print_env, N_("Print address in shell mode"), NULL }, |
| G_OPTION_ENTRY_NULL |
| }; |
| |
| context = g_option_context_new (""); |
| g_option_context_set_translation_domain (context, GETTEXT_PACKAGE); |
| g_option_context_set_summary (context, |
| N_("Run a dbus service")); |
| g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE); |
| |
| error = NULL; |
| if (!g_option_context_parse (context, &argc, &argv, &error)) |
| { |
| g_printerr ("%s\n", error->message); |
| return 1; |
| } |
| |
| g_option_context_free (context); |
| |
| if (argc != 1) |
| { |
| g_printerr (_("Wrong args\n")); |
| return 1; |
| } |
| |
| |
| loop = g_main_loop_new (NULL, FALSE); |
| |
| if (argc >= 2) |
| address = argv[1]; |
| |
| daemon = _g_dbus_daemon_new (address, NULL, &error); |
| if (daemon == NULL) |
| { |
| g_printerr ("Can't init bus: %s\n", error->message); |
| return 1; |
| } |
| |
| if (print_env) |
| g_print ("export DBUS_SESSION_BUS_ADDRESS=\"%s\"\n", _g_dbus_daemon_get_address (daemon)); |
| |
| if (print_address) |
| g_print ("%s\n", _g_dbus_daemon_get_address (daemon)); |
| |
| g_main_loop_run (loop); |
| |
| g_main_loop_unref (loop); |
| |
| return 0; |
| } |