]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
Add "quit" subcommand to boot client
authorRay Strode <rstrode@redhat.com>
Sat, 13 Sep 2008 17:38:49 +0000 (13:38 -0400)
committerRay Strode <rstrode@redhat.com>
Tue, 23 Sep 2008 18:29:38 +0000 (14:29 -0400)
It's like --quit but has a --retain-splash option,
so the boot splash can stay on screen after plymouthd
exits.

src/client/plymouth.c

index 3133d75a43613380f1794eddf000bad8b23aa74a..cf58b7ea4b7957e8cacf5effc32cc41a452c7045 100644 (file)
@@ -307,6 +307,26 @@ on_password_request (state_t    *state,
     }
 }
 
+static void
+on_quit_request (state_t    *state,
+                 const char *command)
+{
+  bool should_retain_splash;
+
+  should_retain_splash = false;
+  ply_command_parser_get_command_options (state->command_parser,
+                                          command,
+                                          "retain-splash", &should_retain_splash,
+                                          NULL);
+
+  ply_boot_client_tell_daemon_to_quit (state->client,
+                                       should_retain_splash,
+                                       (ply_boot_client_response_handler_t)
+                                       on_success,
+                                       (ply_boot_client_response_handler_t)
+                                       on_failure, state);
+}
+
 int
 main (int    argc,
       char **argv)
@@ -348,6 +368,13 @@ main (int    argc,
                                   "prompt", "Message to display when asking for password",
                                   PLY_COMMAND_OPTION_TYPE_STRING, NULL);
 
+  ply_command_parser_add_command (state.command_parser,
+                                  "quit", "Tell boot daemon to quit",
+                                  (ply_command_handler_t)
+                                  on_quit_request, &state,
+                                  "retain-splash", "Don't explicitly hide boot splash on exit",
+                                  PLY_COMMAND_OPTION_TYPE_FLAG, NULL);
+
   if (!ply_command_parser_parse_arguments (state.command_parser, state.loop, argv, argc))
     {
       char *help_string;