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,
"updates", &updates,
"system-upgrade", &system_upgrade,
"firmware-upgrade", &firmware_upgrade,
+ "system-reset", &system_reset,
NULL);
if (boot_up)
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,
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,
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;
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;
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:
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:
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:
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;
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");
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:
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");
{
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)
{
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);
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
[firmware-upgrade]
UseProgressBar=true
UseAnimation=true
+
+[system-reset]
+UseProgressBar=true
+UseAnimation=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