diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/session_manager/config.ts | 3 | ||||
-rw-r--r-- | src/server/session_manager/session_manager.ts | 12 |
2 files changed, 13 insertions, 2 deletions
diff --git a/src/server/session_manager/config.ts b/src/server/session_manager/config.ts index bb84a166d..ebbd999c6 100644 --- a/src/server/session_manager/config.ts +++ b/src/server/session_manager/config.ts @@ -28,5 +28,6 @@ export enum SessionState { LISTENING = "LISTENING", AUTOMATICALLY_RESTARTING = "CRASH_RESTARTING", MANUALLY_RESTARTING = "MANUALLY_RESTARTING", - EXITING = "EXITING" + EXITING = "EXITING", + UPDATING = "UPDATING" }
\ No newline at end of file diff --git a/src/server/session_manager/session_manager.ts b/src/server/session_manager/session_manager.ts index 9fe4b1ab8..b620c8502 100644 --- a/src/server/session_manager/session_manager.ts +++ b/src/server/session_manager/session_manager.ts @@ -31,6 +31,16 @@ registerCommand("exit", [], async () => { execSync(killAllCommand()); }); +registerCommand("update", [], async () => { + set(SessionState.UPDATING); + await new Promise<void>(resolve => { + exec("git pull && npm install", () => { + resolve(); + }); + }); + set(SessionState.MANUALLY_RESTARTING); +}); + registerCommand("state", [], () => identifiedLog(state)); if (!existsSync(logPath)) { @@ -110,7 +120,7 @@ async function checkHeartbeat() { listening && console.log("⇠ 💔"); error = e; } finally { - if (error && !is(SessionState.AUTOMATICALLY_RESTARTING, SessionState.INITIALIZED)) { + if (error && !is(SessionState.AUTOMATICALLY_RESTARTING, SessionState.INITIALIZED, SessionState.UPDATING)) { if (is(SessionState.STARTING)) { set(SessionState.INITIALIZED); } else if (is(SessionState.MANUALLY_RESTARTING)) { |