From: Victor Tran Date: Fri, 24 Nov 2023 20:11:36 +0000 (+0000) Subject: Add system-reset splash mode X-Git-Tag: 23.51.283~19^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6f9744cb32c42cf981afa1b24a89a3b5b8a88846;p=thirdparty%2Fplymouth.git Add system-reset splash mode --- diff --git a/src/client/plymouth.c b/src/client/plymouth.c index 7e6214a7..817ca5fa 100644 --- a/src/client/plymouth.c +++ b/src/client/plymouth.c @@ -812,6 +812,7 @@ on_change_mode_request (state_t *state, bool updates = false; bool system_upgrade = false; bool firmware_upgrade = false; + bool system_reset = false; const char *mode = NULL; ply_command_parser_get_command_options (state->command_parser, @@ -822,6 +823,7 @@ on_change_mode_request (state_t *state, "updates", &updates, "system-upgrade", &system_upgrade, "firmware-upgrade", &firmware_upgrade, + "system-reset", &system_reset, NULL); if (boot_up) @@ -836,6 +838,8 @@ on_change_mode_request (state_t *state, mode = "system-upgrade"; else if (firmware_upgrade) mode = "firmware-upgrade"; + else if (system_reset) + mode = "system-reset"; if (mode) { ply_boot_client_change_mode (state->client, mode, @@ -931,6 +935,8 @@ main (int argc, PLY_COMMAND_OPTION_TYPE_FLAG, "firmware-upgrade", "Upgrading firmware to a new version", PLY_COMMAND_OPTION_TYPE_FLAG, + "system-reset", "Resetting the OS and erasing all user data", + PLY_COMMAND_OPTION_TYPE_FLAG, NULL); ply_command_parser_add_command (state.command_parser, diff --git a/src/libply-splash-core/ply-boot-splash-plugin.h b/src/libply-splash-core/ply-boot-splash-plugin.h index 4410b165..d5cd05a7 100644 --- a/src/libply-splash-core/ply-boot-splash-plugin.h +++ b/src/libply-splash-core/ply-boot-splash-plugin.h @@ -42,8 +42,9 @@ typedef enum PLY_BOOT_SPLASH_MODE_UPDATES, PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE, PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE, + PLY_BOOT_SPLASH_MODE_SYSTEM_RESET, PLY_BOOT_SPLASH_MODE_INVALID, - PLY_BOOT_SPLASH_MODE_COUNT = PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE + 1, + PLY_BOOT_SPLASH_MODE_COUNT = PLY_BOOT_SPLASH_MODE_SYSTEM_RESET + 1, } ply_boot_splash_mode_t; typedef struct _ply_boot_splash_plugin ply_boot_splash_plugin_t; diff --git a/src/main.c b/src/main.c index d60b42e8..ae029bf0 100644 --- a/src/main.c +++ b/src/main.c @@ -208,6 +208,8 @@ on_change_mode (state_t *state, state->mode = PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE; else if (strcmp (mode, "firmware-upgrade") == 0) state->mode = PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE; + else if (strcmp (mode, "system-reset") == 0) + state->mode = PLY_BOOT_SPLASH_MODE_SYSTEM_RESET; else return; @@ -690,6 +692,7 @@ get_cache_file_for_mode (ply_boot_splash_mode_t mode) case PLY_BOOT_SPLASH_MODE_UPDATES: case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE: case PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE: + case PLY_BOOT_SPLASH_MODE_SYSTEM_RESET: filename = NULL; break; case PLY_BOOT_SPLASH_MODE_INVALID: @@ -724,6 +727,7 @@ get_log_file_for_state (state_t *state) case PLY_BOOT_SPLASH_MODE_UPDATES: case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE: case PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE: + case PLY_BOOT_SPLASH_MODE_SYSTEM_RESET: filename = _PATH_DEVNULL; break; case PLY_BOOT_SPLASH_MODE_INVALID: @@ -751,6 +755,7 @@ get_log_spool_file_for_mode (ply_boot_splash_mode_t mode) case PLY_BOOT_SPLASH_MODE_UPDATES: case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE: case PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE: + case PLY_BOOT_SPLASH_MODE_SYSTEM_RESET: filename = NULL; break; case PLY_BOOT_SPLASH_MODE_INVALID: @@ -2313,6 +2318,8 @@ main (int argc, state.mode = PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE; else if (strcmp (mode_string, "firmware-upgrade") == 0) state.mode = PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE; + else if (strcmp (mode_string, "system-reset") == 0) + state.mode = PLY_BOOT_SPLASH_MODE_SYSTEM_RESET; else state.mode = PLY_BOOT_SPLASH_MODE_BOOT_UP; diff --git a/src/plugins/splash/script/script-lib-plymouth.c b/src/plugins/splash/script/script-lib-plymouth.c index df3a7983..36db5fa1 100644 --- a/src/plugins/splash/script/script-lib-plymouth.c +++ b/src/plugins/splash/script/script-lib-plymouth.c @@ -84,6 +84,9 @@ static script_return_t plymouth_get_mode (script_state_t *state, case PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE: obj = script_obj_new_string ("firmware-upgrade"); break; + case PLY_BOOT_SPLASH_MODE_SYSTEM_RESET: + obj = script_obj_new_string ("system-reset"); + break; case PLY_BOOT_SPLASH_MODE_INVALID: default: obj = script_obj_new_string ("unknown"); diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c index c3b45a05..516a66c4 100644 --- a/src/plugins/splash/two-step/plugin.c +++ b/src/plugins/splash/two-step/plugin.c @@ -284,6 +284,7 @@ view_load_end_animation (view_t *view) case PLY_BOOT_SPLASH_MODE_UPDATES: case PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE: case PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE: + case PLY_BOOT_SPLASH_MODE_SYSTEM_RESET: animation_prefix = "startup-animation-"; break; case PLY_BOOT_SPLASH_MODE_SHUTDOWN: @@ -1226,6 +1227,7 @@ create_plugin (ply_key_file_t *key_file) 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); load_mode_settings (plugin, key_file, "firmware-upgrade", PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE); + load_mode_settings (plugin, key_file, "system-reset", PLY_BOOT_SPLASH_MODE_SYSTEM_RESET); if (plugin->use_firmware_background) { plugin->background_bgrt_image = ply_image_new ("/sys/firmware/acpi/bgrt/image"); @@ -1852,7 +1854,8 @@ on_boot_progress (ply_boot_splash_plugin_t *plugin, { if (plugin->mode == PLY_BOOT_SPLASH_MODE_UPDATES || plugin->mode == PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE || - plugin->mode == PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE) + plugin->mode == PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE || + plugin->mode == PLY_BOOT_SPLASH_MODE_SYSTEM_RESET) return; if (plugin->state != PLY_BOOT_SPLASH_DISPLAY_NORMAL) @@ -2035,7 +2038,8 @@ system_update (ply_boot_splash_plugin_t *plugin, { if (plugin->mode != PLY_BOOT_SPLASH_MODE_UPDATES && plugin->mode != PLY_BOOT_SPLASH_MODE_SYSTEM_UPGRADE && - plugin->mode != PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE) + plugin->mode != PLY_BOOT_SPLASH_MODE_FIRMWARE_UPGRADE && + plugin->mode != PLY_BOOT_SPLASH_MODE_SYSTEM_RESET) return; update_progress_animation (plugin, progress / 100.0); diff --git a/themes/bgrt/bgrt.plymouth.desktop b/themes/bgrt/bgrt.plymouth.desktop index eed71626..bfa79e7d 100644 --- a/themes/bgrt/bgrt.plymouth.desktop +++ b/themes/bgrt/bgrt.plymouth.desktop @@ -56,3 +56,10 @@ ProgressBarShowPercentComplete=true UseProgressBar=true Title=Upgrading Firmware... SubTitle=Do not turn off your computer + +[system-reset] +SuppressMessages=true +ProgressBarShowPercentComplete=true +UseProgressBar=true +Title=Resetting System... +SubTitle=Do not turn off your computer diff --git a/themes/spinfinity/spinfinity.plymouth.in b/themes/spinfinity/spinfinity.plymouth.in index 9f420de4..59401a7e 100644 --- a/themes/spinfinity/spinfinity.plymouth.in +++ b/themes/spinfinity/spinfinity.plymouth.in @@ -42,3 +42,7 @@ UseAnimation=true [firmware-upgrade] UseProgressBar=true UseAnimation=true + +[system-reset] +UseProgressBar=true +UseAnimation=true diff --git a/themes/spinner/spinner.plymouth.desktop b/themes/spinner/spinner.plymouth.desktop index ac3485dd..b335880d 100644 --- a/themes/spinner/spinner.plymouth.desktop +++ b/themes/spinner/spinner.plymouth.desktop @@ -52,3 +52,10 @@ ProgressBarShowPercentComplete=true UseProgressBar=true Title=Upgrading Firmware... SubTitle=Do not turn off your computer + +[system-reset] +SuppressMessages=true +ProgressBarShowPercentComplete=true +UseProgressBar=true +Title=Resetting System... +SubTitle=Do not turn off your computer