aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/session_manager/config.ts3
-rw-r--r--src/server/session_manager/session_manager.ts12
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)) {