From 4d796b547ee8dae5e59fdda6dd4aec1af5bef2ed Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Fri, 6 Dec 2024 18:33:45 -0500 Subject: [PATCH] Add settings::restart which restarts Rack on exit when true. --- adapters/standalone.cpp | 5 +++++ include/settings.hpp | 2 ++ src/settings.cpp | 1 + 3 files changed, 8 insertions(+) diff --git a/adapters/standalone.cpp b/adapters/standalone.cpp index 23e90a66..8ff3b128 100644 --- a/adapters/standalone.cpp +++ b/adapters/standalone.cpp @@ -312,6 +312,11 @@ int main(int argc, char* argv[]) { INFO("Destroying logger"); logger::destroy(); + // Restart executable if requested + if (settings::restart) { + settings::restart = false; + return main(argc, argv); + } return 0; } diff --git a/include/settings.hpp b/include/settings.hpp index 3092da89..a867b5fc 100644 --- a/include/settings.hpp +++ b/include/settings.hpp @@ -24,6 +24,8 @@ extern std::string settingsPath; extern bool devMode; extern bool headless; extern bool isPlugin; +/** Requests to restart the application on exit. */ +extern bool restart; // Persistent state, serialized to settings.json. diff --git a/src/settings.cpp b/src/settings.cpp index 47053c96..e4c702ba 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -19,6 +19,7 @@ std::string settingsPath; bool devMode = false; bool headless = false; bool isPlugin = false; +bool restart = false; std::string language = "en"; bool safeMode = false;