(root)/
glib-2.79.0/
gio/
tests/
gdbus-daemon.c
       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      G_OPTION_ENTRY_NULL
      23    };
      24  
      25    context = g_option_context_new ("");
      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, &argv, &error))
      33      {
      34        g_printerr ("%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);
      53    if (daemon == NULL)
      54      {
      55        g_printerr ("Can't init bus: %s\n", error->message);
      56        return 1;
      57      }
      58  
      59    if (print_env)
      60      g_print ("export DBUS_SESSION_BUS_ADDRESS=\"%s\"\n", _g_dbus_daemon_get_address (daemon));
      61  
      62    if (print_address)
      63      g_print ("%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  }