123
123
static GList *status_clients = NULL;
125
static void run_lightdm (void);
125
static void ready (void);
126
126
static void quit (int status);
127
127
static void check_status (const gchar *status);
128
128
static AccountsUser *get_accounts_user_by_uid (guint uid);
403
403
g_hash_table_insert (params, param_name, param_value);
406
if (strcmp (name, "WAIT") == 0)
406
if (strcmp (name, "START-DAEMON") == 0)
408
GString *command_line;
409
gchar **lightdm_argv;
411
GError *error = NULL;
413
command_line = g_string_new ("lightdm");
414
if (getenv ("DEBUG"))
415
g_string_append (command_line, " --debug");
416
g_string_append_printf (command_line, " --cache-dir %s/cache", temp_dir);
418
test_runner_command = g_strdup_printf ("PATH=%s LD_PRELOAD=%s LD_LIBRARY_PATH=%s LIGHTDM_TEST_ROOT=%s DBUS_SESSION_BUS_ADDRESS=%s %s\n",
419
g_getenv ("PATH"), g_getenv ("LD_PRELOAD"), g_getenv ("LD_LIBRARY_PATH"), g_getenv ("LIGHTDM_TEST_ROOT"), g_getenv ("DBUS_SESSION_BUS_ADDRESS"),
422
if (!g_shell_parse_argv (command_line->str, NULL, &lightdm_argv, &error))
424
g_warning ("Error parsing command line: %s", error->message);
427
g_clear_error (&error);
429
if (!g_spawn_async (NULL, lightdm_argv, NULL, G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH, NULL, NULL, &lightdm_pid, &error))
431
g_warning ("Error launching LightDM: %s", error->message);
434
g_clear_error (&error);
435
lightdm_process = watch_process (lightdm_pid);
437
check_status ("RUNNER DAEMON-START");
439
else if (strcmp (name, "WAIT") == 0)
408
441
/* Use a main loop so that our DBus functions are still responsive */
409
442
GMainLoop *loop = g_main_loop_new (NULL, FALSE);
1885
GString *command_line;
1886
gchar **lightdm_argv;
1888
GError *error = NULL;
1890
1919
run_commands ();
1892
status_timeout = g_timeout_add (status_timeout_ms, status_timeout_cb, NULL);
1894
command_line = g_string_new ("lightdm");
1895
if (getenv ("DEBUG"))
1896
g_string_append (command_line, " --debug");
1897
g_string_append_printf (command_line, " --cache-dir %s/cache", temp_dir);
1899
test_runner_command = g_strdup_printf ("PATH=%s LD_PRELOAD=%s LD_LIBRARY_PATH=%s LIGHTDM_TEST_ROOT=%s DBUS_SESSION_BUS_ADDRESS=%s %s\n",
1900
g_getenv ("PATH"), g_getenv ("LD_PRELOAD"), g_getenv ("LD_LIBRARY_PATH"), g_getenv ("LIGHTDM_TEST_ROOT"), g_getenv ("DBUS_SESSION_BUS_ADDRESS"),
1903
if (!g_shell_parse_argv (command_line->str, NULL, &lightdm_argv, &error))
1905
g_warning ("Error parsing command line: %s", error->message);
1906
quit (EXIT_FAILURE);
1908
g_clear_error (&error);
1910
if (!g_spawn_async (NULL, lightdm_argv, NULL, G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH, NULL, NULL, &lightdm_pid, &error))
1912
g_warning ("Error launching LightDM: %s", error->message);
1913
quit (EXIT_FAILURE);
1915
g_clear_error (&error);
1916
lightdm_process = watch_process (lightdm_pid);
1918
check_status ("RUNNER DAEMON-START");
1921
1922
static gboolean