]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
Add system-reset splash mode
authorVictor Tran <vicr12345@gmail.com>
Fri, 24 Nov 2023 20:11:36 +0000 (20:11 +0000)
committerRay Strode <halfline@gmail.com>
Fri, 24 Nov 2023 20:11:36 +0000 (20:11 +0000)
src/client/plymouth.c
src/libply-splash-core/ply-boot-splash-plugin.h
src/main.c
src/plugins/splash/script/script-lib-plymouth.c
src/plugins/splash/two-step/plugin.c
themes/bgrt/bgrt.plymouth.desktop
themes/spinfinity/spinfinity.plymouth.in
themes/spinner/spinner.plymouth.desktop

index 7e6214a7e3db992e926922f147252722e220e904..817ca5faa6c770e92bd02b92fb35fc86c62490e8 100644 (file)
@@ -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,
index 4410b165cb8730c3eb869f6ab08dba820096e93d..d5cd05a7df85a8c710b461523ce129c76bbebbfe 100644 (file)
@@ -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;
index d60b42e85fe5bf26b3500d196e252039967841f7..ae029bf0423660a2ad33c38e081144dfd44ead13 100644 (file)
@@ -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;
 
index df3a79837755f62dda8dc6da378f6b58b66d61c3..36db5fa12c1fa36bd4e0ba7fb6718ae1a0cc9743 100644 (file)
@@ -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");
index c3b45a052ef32756d830ff7bb2cc299d2de1dbbe..516a66c43576762f800488ccbb7967035fddd1ad 100644 (file)
@@ -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);
index eed7162652997dce3e421541a9cf3594fc1f5f91..bfa79e7dbf5eaa4e63b616ab7ef9f1fd260368bd 100644 (file)
@@ -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
index 9f420de4665df831821b38cc0233795cd3a3e210..59401a7e77c7d46aecacdba1cec8cf848c75e53e 100644 (file)
@@ -42,3 +42,7 @@ UseAnimation=true
 [firmware-upgrade]
 UseProgressBar=true
 UseAnimation=true
+
+[system-reset]
+UseProgressBar=true
+UseAnimation=true
index ac3485ddf5d219895859eb89a819ad7dff6b7a9e..b335880d2e9b00dcf8b6039e3e92a9033ea7a8b9 100644 (file)
@@ -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