mirror of
https://gitlab.freedesktop.org/plymouth/plymouth.git
synced 2026-05-08 03:08:13 +02:00
Merge branch 'system-upgrade-mode' into 'master'
Add new reboot and system-upgrade modes See merge request plymouth/plymouth!29
This commit is contained in:
commit
8cc301ef79
12 changed files with 134 additions and 104 deletions
|
|
@ -782,38 +782,42 @@ static void
|
|||
on_change_mode_request (state_t *state,
|
||||
const char *command)
|
||||
{
|
||||
bool boot_up;
|
||||
bool shutdown;
|
||||
bool updates;
|
||||
bool boot_up = false;
|
||||
bool shutdown = false;
|
||||
bool reboot = false;
|
||||
bool updates = false;
|
||||
bool system_upgrade = false;
|
||||
const char *mode = NULL;
|
||||
|
||||
boot_up = false;
|
||||
shutdown = false;
|
||||
updates = false;
|
||||
ply_command_parser_get_command_options (state->command_parser,
|
||||
command,
|
||||
"boot-up", &boot_up,
|
||||
"shutdown", &shutdown,
|
||||
"reboot", &reboot,
|
||||
"updates", &updates,
|
||||
"system-upgrade", &system_upgrade,
|
||||
NULL);
|
||||
|
||||
if (boot_up) {
|
||||
ply_boot_client_change_mode (state->client, "boot-up",
|
||||
(ply_boot_client_response_handler_t)
|
||||
on_success,
|
||||
(ply_boot_client_response_handler_t)
|
||||
on_failure, state);
|
||||
} else if (shutdown) {
|
||||
ply_boot_client_change_mode (state->client, "shutdown",
|
||||
(ply_boot_client_response_handler_t)
|
||||
on_success,
|
||||
(ply_boot_client_response_handler_t)
|
||||
on_failure, state);
|
||||
} else if (updates) {
|
||||
ply_boot_client_change_mode (state->client, "updates",
|
||||
if (boot_up)
|
||||
mode = "boot-up";
|
||||
else if (shutdown)
|
||||
mode = "shutdown";
|
||||
else if (reboot)
|
||||
mode = "reboot";
|
||||
else if (updates)
|
||||
mode = "updates";
|
||||
else if (system_upgrade)
|
||||
mode = "system-upgrade";
|
||||
|
||||
if (mode) {
|
||||
ply_boot_client_change_mode (state->client, mode,
|
||||
(ply_boot_client_response_handler_t)
|
||||
on_success,
|
||||
(ply_boot_client_response_handler_t)
|
||||
on_failure, state);
|
||||
} else {
|
||||
ply_error ("Error no mode specified for 'change-mode' command");
|
||||
ply_event_loop_exit (state->loop, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -891,8 +895,12 @@ main (int argc,
|
|||
PLY_COMMAND_OPTION_TYPE_FLAG,
|
||||
"shutdown", "Shutting the system down",
|
||||
PLY_COMMAND_OPTION_TYPE_FLAG,
|
||||
"reboot", "Rebooting the system",
|
||||
PLY_COMMAND_OPTION_TYPE_FLAG,
|
||||
"updates", "Applying updates",
|
||||
PLY_COMMAND_OPTION_TYPE_FLAG,
|
||||
"system-upgrade", "Upgrading the OS to a new version",
|
||||
PLY_COMMAND_OPTION_TYPE_FLAG,
|
||||
NULL);
|
||||
|
||||
ply_command_parser_add_command (state.command_parser,
|
||||
|
|
|
|||
|
|
@ -38,9 +38,11 @@ typedef enum
|
|||
{
|
||||
PLY_BOOT_SPLASH_MODE_BOOT_UP,
|
||||
PLY_BOOT_SPLASH_MODE_SHUTDOWN,
|
||||
PLY_BOOT_SPLASH_MODE_REBOOT,
|
||||
PLY_BOOT_SPLASH_MODE_UPDATES,
|
||||
PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE,
|
||||
PLY_BOOT_SPLASH_MODE_INVALID,
|
||||
PLY_BOOT_SPLASH_MODE_COUNT = PLY_BOOT_SPLASH_MODE_UPDATES + 1,
|
||||
PLY_BOOT_SPLASH_MODE_COUNT = PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE + 1,
|
||||
} ply_boot_splash_mode_t;
|
||||
|
||||
typedef struct _ply_boot_splash_plugin ply_boot_splash_plugin_t;
|
||||
|
|
|
|||
110
src/main.c
110
src/main.c
|
|
@ -58,13 +58,6 @@
|
|||
#define BOOT_DURATION_FILE PLYMOUTH_TIME_DIRECTORY "/boot-duration"
|
||||
#define SHUTDOWN_DURATION_FILE PLYMOUTH_TIME_DIRECTORY "/shutdown-duration"
|
||||
|
||||
typedef enum
|
||||
{
|
||||
PLY_MODE_BOOT,
|
||||
PLY_MODE_SHUTDOWN,
|
||||
PLY_MODE_UPDATES
|
||||
} ply_mode_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
const char *keys;
|
||||
|
|
@ -93,7 +86,7 @@ typedef struct
|
|||
ply_buffer_t *entry_buffer;
|
||||
ply_list_t *messages;
|
||||
ply_command_parser_t *command_parser;
|
||||
ply_mode_t mode;
|
||||
ply_boot_splash_mode_t mode;
|
||||
ply_terminal_t *local_console_terminal;
|
||||
ply_device_manager_t *device_manager;
|
||||
|
||||
|
|
@ -149,7 +142,7 @@ static void toggle_between_splash_and_details (state_t *state);
|
|||
static void tell_systemd_to_print_details (state_t *state);
|
||||
static void tell_systemd_to_stop_printing_details (state_t *state);
|
||||
#endif
|
||||
static const char *get_cache_file_for_mode (ply_mode_t mode);
|
||||
static const char *get_cache_file_for_mode (ply_boot_splash_mode_t mode);
|
||||
static void on_escape_pressed (state_t *state);
|
||||
static void on_enter (state_t *state,
|
||||
const char *line);
|
||||
|
|
@ -163,30 +156,6 @@ static void on_quit (state_t *state,
|
|||
static bool sh_is_init (state_t *state);
|
||||
static void cancel_pending_delayed_show (state_t *state);
|
||||
|
||||
static ply_boot_splash_mode_t
|
||||
get_splash_mode_from_mode (ply_mode_t mode)
|
||||
{
|
||||
ply_boot_splash_mode_t splash_mode;
|
||||
switch (mode) {
|
||||
case PLY_MODE_BOOT:
|
||||
splash_mode = PLY_BOOT_SPLASH_MODE_BOOT_UP;
|
||||
break;
|
||||
case PLY_MODE_SHUTDOWN:
|
||||
splash_mode = PLY_BOOT_SPLASH_MODE_SHUTDOWN;
|
||||
break;
|
||||
case PLY_MODE_UPDATES:
|
||||
splash_mode = PLY_BOOT_SPLASH_MODE_UPDATES;
|
||||
break;
|
||||
default:
|
||||
splash_mode = PLY_BOOT_SPLASH_MODE_INVALID;
|
||||
break;
|
||||
}
|
||||
|
||||
assert (splash_mode != PLY_BOOT_SPLASH_MODE_INVALID);
|
||||
|
||||
return splash_mode;
|
||||
}
|
||||
|
||||
static void
|
||||
on_session_output (state_t *state,
|
||||
const char *output,
|
||||
|
|
@ -220,8 +189,6 @@ static void
|
|||
on_change_mode (state_t *state,
|
||||
const char *mode)
|
||||
{
|
||||
ply_boot_splash_mode_t splash_mode;
|
||||
|
||||
if (state->boot_splash == NULL) {
|
||||
ply_trace ("no splash set");
|
||||
return;
|
||||
|
|
@ -229,17 +196,19 @@ on_change_mode (state_t *state,
|
|||
|
||||
ply_trace ("updating mode to '%s'", mode);
|
||||
if (strcmp (mode, "boot-up") == 0)
|
||||
state->mode = PLY_MODE_BOOT;
|
||||
state->mode = PLY_BOOT_SPLASH_MODE_BOOT_UP;
|
||||
else if (strcmp (mode, "shutdown") == 0)
|
||||
state->mode = PLY_MODE_SHUTDOWN;
|
||||
state->mode = PLY_BOOT_SPLASH_MODE_SHUTDOWN;
|
||||
else if (strcmp (mode, "reboot") == 0)
|
||||
state->mode = PLY_BOOT_SPLASH_MODE_REBOOT;
|
||||
else if (strcmp (mode, "updates") == 0)
|
||||
state->mode = PLY_MODE_UPDATES;
|
||||
state->mode = PLY_BOOT_SPLASH_MODE_UPDATES;
|
||||
else if (strcmp (mode, "system-upgrade") == 0)
|
||||
state->mode = PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE;
|
||||
else
|
||||
return;
|
||||
|
||||
splash_mode = get_splash_mode_from_mode (state->mode);
|
||||
|
||||
if (!ply_boot_splash_show (state->boot_splash, splash_mode)) {
|
||||
if (!ply_boot_splash_show (state->boot_splash, state->mode)) {
|
||||
ply_trace ("failed to update splash");
|
||||
return;
|
||||
}
|
||||
|
|
@ -689,20 +658,23 @@ on_newroot (state_t *state,
|
|||
}
|
||||
|
||||
static const char *
|
||||
get_cache_file_for_mode (ply_mode_t mode)
|
||||
get_cache_file_for_mode (ply_boot_splash_mode_t mode)
|
||||
{
|
||||
const char *filename;
|
||||
|
||||
switch ((int) mode) {
|
||||
case PLY_MODE_BOOT:
|
||||
switch (mode) {
|
||||
case PLY_BOOT_SPLASH_MODE_BOOT_UP:
|
||||
filename = BOOT_DURATION_FILE;
|
||||
break;
|
||||
case PLY_MODE_SHUTDOWN:
|
||||
case PLY_BOOT_SPLASH_MODE_SHUTDOWN:
|
||||
case PLY_BOOT_SPLASH_MODE_REBOOT:
|
||||
filename = SHUTDOWN_DURATION_FILE;
|
||||
break;
|
||||
case PLY_MODE_UPDATES:
|
||||
case PLY_BOOT_SPLASH_MODE_UPDATES:
|
||||
case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE:
|
||||
filename = NULL;
|
||||
break;
|
||||
case PLY_BOOT_SPLASH_MODE_INVALID:
|
||||
default:
|
||||
ply_error ("Unhandled case in %s line %d\n", __FILE__, __LINE__);
|
||||
abort ();
|
||||
|
|
@ -718,17 +690,20 @@ get_log_file_for_state (state_t *state)
|
|||
{
|
||||
const char *filename;
|
||||
|
||||
switch ((int) state->mode) {
|
||||
case PLY_MODE_BOOT:
|
||||
switch (state->mode) {
|
||||
case PLY_BOOT_SPLASH_MODE_BOOT_UP:
|
||||
if (state->no_boot_log)
|
||||
filename = NULL;
|
||||
else
|
||||
filename = PLYMOUTH_LOG_DIRECTORY "/boot.log";
|
||||
break;
|
||||
case PLY_MODE_SHUTDOWN:
|
||||
case PLY_MODE_UPDATES:
|
||||
case PLY_BOOT_SPLASH_MODE_SHUTDOWN:
|
||||
case PLY_BOOT_SPLASH_MODE_REBOOT:
|
||||
case PLY_BOOT_SPLASH_MODE_UPDATES:
|
||||
case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE:
|
||||
filename = _PATH_DEVNULL;
|
||||
break;
|
||||
case PLY_BOOT_SPLASH_MODE_INVALID:
|
||||
default:
|
||||
ply_error ("Unhandled case in %s line %d\n", __FILE__, __LINE__);
|
||||
abort ();
|
||||
|
|
@ -740,18 +715,21 @@ get_log_file_for_state (state_t *state)
|
|||
}
|
||||
|
||||
static const char *
|
||||
get_log_spool_file_for_mode (ply_mode_t mode)
|
||||
get_log_spool_file_for_mode (ply_boot_splash_mode_t mode)
|
||||
{
|
||||
const char *filename;
|
||||
|
||||
switch ((int) mode) {
|
||||
case PLY_MODE_BOOT:
|
||||
switch (mode) {
|
||||
case PLY_BOOT_SPLASH_MODE_BOOT_UP:
|
||||
filename = PLYMOUTH_SPOOL_DIRECTORY "/boot.log";
|
||||
break;
|
||||
case PLY_MODE_SHUTDOWN:
|
||||
case PLY_MODE_UPDATES:
|
||||
case PLY_BOOT_SPLASH_MODE_SHUTDOWN:
|
||||
case PLY_BOOT_SPLASH_MODE_REBOOT:
|
||||
case PLY_BOOT_SPLASH_MODE_UPDATES:
|
||||
case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE:
|
||||
filename = NULL;
|
||||
break;
|
||||
case PLY_BOOT_SPLASH_MODE_INVALID:
|
||||
default:
|
||||
ply_error ("Unhandled case in %s line %d\n", __FILE__, __LINE__);
|
||||
abort ();
|
||||
|
|
@ -841,7 +819,7 @@ static bool
|
|||
plymouth_should_ignore_show_splash_calls (state_t *state)
|
||||
{
|
||||
ply_trace ("checking if plymouth should be running");
|
||||
if (state->mode != PLY_MODE_BOOT || ply_kernel_command_line_has_argument ("plymouth.force-splash"))
|
||||
if (state->mode != PLY_BOOT_SPLASH_MODE_BOOT_UP || ply_kernel_command_line_has_argument ("plymouth.force-splash"))
|
||||
return false;
|
||||
|
||||
if (ply_kernel_command_line_has_argument ("plymouth.ignore-show-splash"))
|
||||
|
|
@ -1213,7 +1191,7 @@ quit_program (state_t *state)
|
|||
|
||||
#ifdef PLY_ENABLE_DEPRECATED_GDM_TRANSITION
|
||||
if (state->should_retain_splash &&
|
||||
state->mode == PLY_MODE_BOOT)
|
||||
state->mode == PLY_BOOT_SPLASH_MODE_BOOT_UP)
|
||||
tell_gdm_to_transition ();
|
||||
|
||||
#endif
|
||||
|
|
@ -1737,7 +1715,6 @@ static ply_boot_splash_t *
|
|||
show_theme (state_t *state,
|
||||
const char *theme_path)
|
||||
{
|
||||
ply_boot_splash_mode_t splash_mode;
|
||||
ply_boot_splash_t *splash;
|
||||
|
||||
if (theme_path != NULL)
|
||||
|
|
@ -1752,9 +1729,7 @@ show_theme (state_t *state,
|
|||
if (ply_boot_splash_uses_pixel_displays (splash))
|
||||
ply_device_manager_activate_renderers (state->device_manager);
|
||||
|
||||
splash_mode = get_splash_mode_from_mode (state->mode);
|
||||
|
||||
if (!ply_boot_splash_show (splash, splash_mode)) {
|
||||
if (!ply_boot_splash_show (splash, state->mode)) {
|
||||
ply_save_errno ();
|
||||
ply_boot_splash_free (splash);
|
||||
ply_restore_errno ();
|
||||
|
|
@ -1985,7 +1960,8 @@ initialize_environment (state_t *state)
|
|||
if (getenv ("DISPLAY") != NULL && access (PLYMOUTH_PLUGIN_PATH "renderers/x11.so", F_OK) == 0)
|
||||
state->default_tty = "/dev/tty";
|
||||
if (!state->default_tty) {
|
||||
if (state->mode == PLY_MODE_SHUTDOWN)
|
||||
if (state->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN ||
|
||||
state->mode == PLY_BOOT_SPLASH_MODE_REBOOT)
|
||||
state->default_tty = SHUTDOWN_TTY;
|
||||
else
|
||||
state->default_tty = BOOT_TTY;
|
||||
|
|
@ -2181,11 +2157,15 @@ main (int argc,
|
|||
|
||||
if (mode_string != NULL) {
|
||||
if (strcmp (mode_string, "shutdown") == 0)
|
||||
state.mode = PLY_MODE_SHUTDOWN;
|
||||
state.mode = PLY_BOOT_SPLASH_MODE_SHUTDOWN;
|
||||
else if (strcmp (mode_string, "reboot") == 0)
|
||||
state.mode = PLY_BOOT_SPLASH_MODE_REBOOT;
|
||||
else if (strcmp (mode_string, "updates") == 0)
|
||||
state.mode = PLY_MODE_UPDATES;
|
||||
state.mode = PLY_BOOT_SPLASH_MODE_UPDATES;
|
||||
else if (strcmp (mode_string, "system-upgrade") == 0)
|
||||
state.mode = PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE;
|
||||
else
|
||||
state.mode = PLY_MODE_BOOT;
|
||||
state.mode = PLY_BOOT_SPLASH_MODE_BOOT_UP;
|
||||
|
||||
free (mode_string);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -468,7 +468,8 @@ view_animate_at_time (view_t *view,
|
|||
logo_opacity = .5 * sin ((time / 5) * (2 * M_PI)) + .8;
|
||||
logo_opacity = CLAMP (logo_opacity, 0, 1.0);
|
||||
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN)
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN ||
|
||||
plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT)
|
||||
logo_opacity = 1.0;
|
||||
|
||||
if (fabs (logo_opacity - view->logo_opacity) <= DBL_MIN)
|
||||
|
|
@ -579,7 +580,8 @@ start_animation (ply_boot_splash_plugin_t *plugin)
|
|||
plugin->start_time = ply_get_timestamp ();
|
||||
animate_at_time (plugin, plugin->start_time);
|
||||
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN)
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN ||
|
||||
plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT)
|
||||
return;
|
||||
|
||||
ply_event_loop_watch_for_timeout (plugin->loop,
|
||||
|
|
|
|||
|
|
@ -70,9 +70,15 @@ static script_return_t plymouth_get_mode (script_state_t *state,
|
|||
case PLY_BOOT_SPLASH_MODE_SHUTDOWN:
|
||||
obj = script_obj_new_string ("shutdown");
|
||||
break;
|
||||
case PLY_BOOT_SPLASH_MODE_REBOOT:
|
||||
obj = script_obj_new_string ("reboot");
|
||||
break;
|
||||
case PLY_BOOT_SPLASH_MODE_UPDATES:
|
||||
obj = script_obj_new_string ("updates");
|
||||
break;
|
||||
case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE:
|
||||
obj = script_obj_new_string ("system-upgrade");
|
||||
break;
|
||||
case PLY_BOOT_SPLASH_MODE_INVALID:
|
||||
default:
|
||||
obj = script_obj_new_string ("unknown");
|
||||
|
|
|
|||
|
|
@ -184,7 +184,8 @@ view_start_animation (view_t *view)
|
|||
ply_text_display_clear_screen (view->display);
|
||||
ply_text_display_hide_cursor (view->display);
|
||||
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN) {
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN ||
|
||||
plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT) {
|
||||
ply_text_step_bar_hide (view->step_bar);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -302,7 +302,8 @@ view_start_animation (view_t *view)
|
|||
ply_pixel_display_draw_area (view->display, 0, 0,
|
||||
screen_width, screen_height);
|
||||
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN)
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN ||
|
||||
plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT)
|
||||
return;
|
||||
|
||||
plugin->is_idle = false;
|
||||
|
|
@ -528,7 +529,8 @@ start_animation (ply_boot_splash_plugin_t *plugin)
|
|||
|
||||
plugin->is_animating = true;
|
||||
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN)
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN ||
|
||||
plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT)
|
||||
plugin->is_idle = true;
|
||||
}
|
||||
|
||||
|
|
@ -720,7 +722,8 @@ on_boot_progress (ply_boot_splash_plugin_t *plugin,
|
|||
ply_list_node_t *node;
|
||||
double total_duration;
|
||||
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_UPDATES)
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_UPDATES ||
|
||||
plugin->mode == PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE)
|
||||
return;
|
||||
|
||||
total_duration = duration / percent_done;
|
||||
|
|
@ -931,7 +934,8 @@ system_update (ply_boot_splash_plugin_t *plugin,
|
|||
{
|
||||
ply_list_node_t *node;
|
||||
|
||||
if (plugin->mode != PLY_BOOT_SPLASH_MODE_UPDATES)
|
||||
if (plugin->mode != PLY_BOOT_SPLASH_MODE_UPDATES &&
|
||||
plugin->mode != PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE)
|
||||
return;
|
||||
|
||||
node = ply_list_get_first_node (plugin->views);
|
||||
|
|
|
|||
|
|
@ -190,7 +190,8 @@ view_start_animation (view_t *view)
|
|||
ply_text_display_clear_screen (view->display);
|
||||
ply_text_display_hide_cursor (view->display);
|
||||
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN) {
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN ||
|
||||
plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT) {
|
||||
ply_text_progress_bar_hide (view->progress_bar);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -107,6 +107,7 @@ typedef struct
|
|||
typedef struct
|
||||
{
|
||||
bool suppress_messages;
|
||||
bool progress_bar_show_percent_complete;
|
||||
bool use_progress_bar;
|
||||
bool use_firmware_background;
|
||||
char *title;
|
||||
|
|
@ -166,7 +167,6 @@ struct _ply_boot_splash_plugin
|
|||
uint32_t use_firmware_background : 1;
|
||||
uint32_t dialog_clears_firmware_background : 1;
|
||||
uint32_t message_below_animation : 1;
|
||||
uint32_t progress_bar_show_percent_complete : 1;
|
||||
};
|
||||
|
||||
ply_boot_splash_plugin_interface_t *ply_boot_splash_plugin_get_interface (void);
|
||||
|
|
@ -251,9 +251,11 @@ view_load_end_animation (view_t *view)
|
|||
switch (plugin->mode) {
|
||||
case PLY_BOOT_SPLASH_MODE_BOOT_UP:
|
||||
case PLY_BOOT_SPLASH_MODE_UPDATES:
|
||||
case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE:
|
||||
animation_prefix = "startup-animation-";
|
||||
break;
|
||||
case PLY_BOOT_SPLASH_MODE_SHUTDOWN:
|
||||
case PLY_BOOT_SPLASH_MODE_REBOOT:
|
||||
animation_prefix = "shutdown-animation-";
|
||||
break;
|
||||
case PLY_BOOT_SPLASH_MODE_INVALID:
|
||||
|
|
@ -723,7 +725,8 @@ view_start_progress_animation (view_t *view)
|
|||
/* We don't really know how long shutdown will so
|
||||
* don't show the progress animation
|
||||
*/
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN)
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN ||
|
||||
plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT)
|
||||
return;
|
||||
|
||||
if (view->progress_animation != NULL) {
|
||||
|
|
@ -823,6 +826,8 @@ load_mode_settings (ply_boot_splash_plugin_t *plugin,
|
|||
|
||||
settings->suppress_messages =
|
||||
ply_key_file_get_bool (key_file, group_name, "SuppressMessages");
|
||||
settings->progress_bar_show_percent_complete =
|
||||
ply_key_file_get_bool (key_file, group_name, "ProgressBarShowPercentComplete");
|
||||
settings->use_progress_bar =
|
||||
ply_key_file_get_bool (key_file, group_name, "UseProgressBar");
|
||||
settings->use_firmware_background =
|
||||
|
|
@ -994,11 +999,12 @@ create_plugin (ply_key_file_t *key_file)
|
|||
|
||||
free (color);
|
||||
|
||||
plugin->progress_bar_show_percent_complete = ply_key_file_get_bool (key_file, "two-step", "ProgressBarShowPercentComplete");
|
||||
|
||||
load_mode_settings (plugin, key_file, "boot-up", PLY_BOOT_SPLASH_MODE_BOOT_UP);
|
||||
load_mode_settings (plugin, key_file, "shutdown", PLY_BOOT_SPLASH_MODE_SHUTDOWN);
|
||||
load_mode_settings (plugin, key_file, "reboot", PLY_BOOT_SPLASH_MODE_REBOOT);
|
||||
load_mode_settings (plugin, key_file, "updates", PLY_BOOT_SPLASH_MODE_UPDATES);
|
||||
load_mode_settings (plugin, key_file, "system-upgrade", PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE);
|
||||
|
||||
if (plugin->use_firmware_background)
|
||||
plugin->background_bgrt_image = ply_image_new ("/sys/firmware/acpi/bgrt/image");
|
||||
|
|
@ -1184,7 +1190,8 @@ start_progress_animation (ply_boot_splash_plugin_t *plugin)
|
|||
* but it's normally really fast, so just jump to
|
||||
* the end animation
|
||||
*/
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN)
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN ||
|
||||
plugin->mode == PLY_BOOT_SPLASH_MODE_REBOOT)
|
||||
become_idle (plugin, NULL);
|
||||
}
|
||||
|
||||
|
|
@ -1574,7 +1581,8 @@ on_boot_progress (ply_boot_splash_plugin_t *plugin,
|
|||
double duration,
|
||||
double percent_done)
|
||||
{
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_UPDATES)
|
||||
if (plugin->mode == PLY_BOOT_SPLASH_MODE_UPDATES ||
|
||||
plugin->mode == PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE)
|
||||
return;
|
||||
|
||||
if (plugin->state != PLY_BOOT_SPLASH_DISPLAY_NORMAL)
|
||||
|
|
@ -1781,7 +1789,8 @@ system_update (ply_boot_splash_plugin_t *plugin,
|
|||
ply_list_node_t *node;
|
||||
char buf[64];
|
||||
|
||||
if (plugin->mode != PLY_BOOT_SPLASH_MODE_UPDATES)
|
||||
if (plugin->mode != PLY_BOOT_SPLASH_MODE_UPDATES &&
|
||||
plugin->mode != PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE)
|
||||
return;
|
||||
|
||||
node = ply_list_get_first_node (plugin->views);
|
||||
|
|
@ -1795,7 +1804,7 @@ system_update (ply_boot_splash_plugin_t *plugin,
|
|||
ply_progress_animation_set_percent_done (view->progress_animation, (double) progress / 100.f);
|
||||
ply_progress_bar_set_percent_done (view->progress_bar, (double) progress / 100.f);
|
||||
if (!ply_progress_bar_is_hidden (view->progress_bar) &&
|
||||
plugin->progress_bar_show_percent_complete) {
|
||||
plugin->mode_settings[plugin->mode].progress_bar_show_percent_complete) {
|
||||
snprintf (buf, sizeof(buf), "%d%% complete", progress);
|
||||
view_show_message (view, buf);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,6 @@ ConditionKernelCommandLine=!plymouth.enable=0
|
|||
ConditionVirtualization=!container
|
||||
|
||||
[Service]
|
||||
ExecStart=@PLYMOUTH_DAEMON_DIR@/plymouthd --mode=shutdown --attach-to-session
|
||||
ExecStart=@PLYMOUTH_DAEMON_DIR@/plymouthd --mode=reboot --attach-to-session
|
||||
ExecStartPost=-@PLYMOUTH_CLIENT_DIR@/plymouth show-splash
|
||||
Type=forking
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ BackgroundStartColor=0x202020
|
|||
BackgroundEndColor=0x202020
|
||||
ProgressBarBackgroundColor=0x606060
|
||||
ProgressBarForegroundColor=0xffffff
|
||||
ProgressBarShowPercentComplete=true
|
||||
DialogClearsFirmwareBackground=true
|
||||
MessageBelowAnimation=true
|
||||
|
||||
|
|
@ -31,8 +30,19 @@ UseFirmwareBackground=true
|
|||
[shutdown]
|
||||
UseFirmwareBackground=true
|
||||
|
||||
[reboot]
|
||||
UseFirmwareBackground=true
|
||||
|
||||
[updates]
|
||||
SuppressMessages=true
|
||||
ProgressBarShowPercentComplete=true
|
||||
UseProgressBar=true
|
||||
Title=Installing Updates...
|
||||
SubTitle=Do not turn off your computer
|
||||
|
||||
[system-upgrade]
|
||||
SuppressMessages=true
|
||||
ProgressBarShowPercentComplete=true
|
||||
UseProgressBar=true
|
||||
Title=Upgrading System...
|
||||
SubTitle=Do not turn off your computer
|
||||
|
|
|
|||
|
|
@ -21,11 +21,18 @@ BackgroundStartColor=0x202020
|
|||
BackgroundEndColor=0x202020
|
||||
ProgressBarBackgroundColor=0x606060
|
||||
ProgressBarForegroundColor=0xffffff
|
||||
ProgressBarShowPercentComplete=true
|
||||
MessageBelowAnimation=true
|
||||
|
||||
[updates]
|
||||
SuppressMessages=true
|
||||
ProgressBarShowPercentComplete=true
|
||||
UseProgressBar=true
|
||||
Title=Installing Updates...
|
||||
SubTitle=Do not turn off your computer
|
||||
|
||||
[system-upgrade]
|
||||
SuppressMessages=true
|
||||
ProgressBarShowPercentComplete=true
|
||||
UseProgressBar=true
|
||||
Title=Upgrading System...
|
||||
SubTitle=Do not turn off your computer
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue