diff options
| author | Peter Jones <pjones@redhat.com> | 2008-06-09 15:40:35 -0400 |
|---|---|---|
| committer | Peter Jones <pjones@vroomfondel.internal.datastacks.com> | 2008-06-09 15:41:45 -0400 |
| commit | 620e9477114c88ca4ac76a0ef76824164bb70ec1 (patch) | |
| tree | 44ccc43ae6127ac5529f8f6db6f75dedfe8633d3 /src/client | |
| parent | 7e85eafab617fef5478c6d9f551f044d67462466 (diff) | |
Add "plymouth --newroot=/sysroot" support, and make --sysinit open the log.
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/ply-boot-client.c | 20 | ||||
| -rw-r--r-- | src/client/ply-boot-client.h | 5 | ||||
| -rw-r--r-- | src/client/plymouth.c | 12 |
3 files changed, 35 insertions, 2 deletions
diff --git a/src/client/ply-boot-client.c b/src/client/ply-boot-client.c index fc998f1..e75309d 100644 --- a/src/client/ply-boot-client.c +++ b/src/client/ply-boot-client.c @@ -445,6 +445,20 @@ ply_boot_client_update_daemon (ply_boot_client_t *client, } void +ply_boot_client_tell_daemon_to_change_root (ply_boot_client_t *client, + const char *root_dir, + ply_boot_client_response_handler_t handler, + ply_boot_client_response_handler_t failed_handler, + void *user_data) +{ + assert (client != NULL); + assert (root_dir != NULL); + + ply_boot_client_queue_request(client, PLY_BOOT_PROTOCOL_REQUEST_TYPE_NEWROOT, + root_dir, handler, failed_handler, user_data); +} + +void ply_boot_client_tell_daemon_system_is_initialized (ply_boot_client_t *client, ply_boot_client_response_handler_t handler, ply_boot_client_response_handler_t failed_handler, @@ -579,6 +593,12 @@ on_update_failed (ply_event_loop_t *loop) } static void +on_newroot (ply_event_loop_t *loop) +{ + printf ("NEWROOT!\n"); +} + +static void on_system_initialized (ply_event_loop_t *loop) { printf ("SYSTEM INITIALIZED!\n"); diff --git a/src/client/ply-boot-client.h b/src/client/ply-boot-client.h index c3240cd..8ee6718 100644 --- a/src/client/ply-boot-client.h +++ b/src/client/ply-boot-client.h @@ -54,6 +54,11 @@ void ply_boot_client_update_daemon (ply_boot_client_t *client, ply_boot_client_response_handler_t handler, ply_boot_client_response_handler_t failed_handler, void *user_data); +void ply_boot_client_tell_daemon_to_change_root (ply_boot_client_t *client, + const char *chroot_dir, + ply_boot_client_response_handler_t handler, + ply_boot_client_response_handler_t failed_handler, + void *user_data); void ply_boot_client_ask_daemon_for_password (ply_boot_client_t *client, ply_boot_client_answer_handler_t handler, ply_boot_client_response_handler_t failed_handler, diff --git a/src/client/plymouth.c b/src/client/plymouth.c index d4d04b2..9d40e14 100644 --- a/src/client/plymouth.c +++ b/src/client/plymouth.c @@ -60,7 +60,7 @@ on_disconnect (ply_event_loop_t *loop) void print_usage (void) { - ply_log ("plymouth [--ping] [--update=STATUS] [--show-splash] [--details] [--sysinit] [--quit]"); + ply_log ("plymouth [--ping] [--update=STATUS] [--show-splash] [--details] [--newroot=<directory>] [--sysinit] [--quit]"); ply_flush_log (); } @@ -72,7 +72,7 @@ main (int argc, ply_boot_client_t *client; ply_command_parser_t *command_parser; bool should_help, should_quit, should_ping, should_sysinit, should_ask_for_password, should_show_splash; - char *status; + char *status, *chroot_dir; int exit_code; int i; @@ -90,6 +90,7 @@ main (int argc, ply_command_parser_add_options (command_parser, "help", "This help message", PLY_COMMAND_OPTION_TYPE_FLAG, + "newroot", "Tell boot daemon that new root filesystem is mounted", PLY_COMMAND_OPTION_TYPE_STRING, "quit", "Tell boot daemon to quit", PLY_COMMAND_OPTION_TYPE_BOOLEAN, "sysinit", "Tell boot daemon root filesystem is mounted read-write", PLY_COMMAND_OPTION_TYPE_BOOLEAN, "show-splash", "Show splash screen", PLY_COMMAND_OPTION_TYPE_BOOLEAN, @@ -111,6 +112,7 @@ main (int argc, ply_command_parser_get_options (command_parser, "help", &should_help, + "newroot", &chroot_dir, "quit", &should_quit, "sysinit", &should_sysinit, "show-splash", &should_show_splash, @@ -188,6 +190,12 @@ main (int argc, on_success, (ply_boot_client_response_handler_t) on_failure, loop); + else if (chroot_dir) + ply_boot_client_tell_daemon_to_change_root (client, chroot_dir, + (ply_boot_client_response_handler_t) + on_success, + (ply_boot_client_response_handler_t) + on_failure, loop); else return 1; |
