Skip to content

Commit ef7afbe

Browse files
Update update.sh
1 parent b7fad61 commit ef7afbe

File tree

2 files changed

+27
-24
lines changed

2 files changed

+27
-24
lines changed

src/app/_components/VersionDisplay.tsx

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ export function VersionDisplay() {
113113
setUpdateLogs(prev => [...prev, `Error: ${data.message}`]);
114114
}
115115
},
116-
onError: (error) => {
116+
onError: () => {
117117
// Connection lost - likely server restarted
118118
console.log('Update stream connection lost, server likely restarting');
119119
setIsNetworkError(true);
@@ -148,25 +148,27 @@ export function VersionDisplay() {
148148

149149
setUpdateLogs(prev => [...prev, 'Attempting to reconnect...']);
150150

151-
reconnectIntervalRef.current = setInterval(async () => {
152-
try {
153-
// Try to fetch the root path to check if server is back
154-
const response = await fetch('/', { method: 'HEAD' });
155-
if (response.ok || response.status === 200) {
156-
setUpdateLogs(prev => [...prev, 'Server is back online! Reloading...']);
157-
158-
// Clear interval and reload
159-
if (reconnectIntervalRef.current) {
160-
clearInterval(reconnectIntervalRef.current);
151+
reconnectIntervalRef.current = setInterval(() => {
152+
void (async () => {
153+
try {
154+
// Try to fetch the root path to check if server is back
155+
const response = await fetch('/', { method: 'HEAD' });
156+
if (response.ok || response.status === 200) {
157+
setUpdateLogs(prev => [...prev, 'Server is back online! Reloading...']);
158+
159+
// Clear interval and reload
160+
if (reconnectIntervalRef.current) {
161+
clearInterval(reconnectIntervalRef.current);
162+
}
163+
164+
setTimeout(() => {
165+
window.location.reload();
166+
}, 1000);
161167
}
162-
163-
setTimeout(() => {
164-
window.location.reload();
165-
}, 1000);
168+
} catch {
169+
// Server still down, keep trying
166170
}
167-
} catch {
168-
// Server still down, keep trying
169-
}
171+
})();
170172
}, 2000);
171173
};
172174

src/server/api/routers/version.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { join } from "path";
44
import { spawn } from "child_process";
55
import { env } from "~/env";
66
import { observable } from '@trpc/server/observable';
7-
import { existsSync, statSync } from "fs";
7+
import { existsSync, statSync, createWriteStream } from "fs";
88

99
interface GitHubRelease {
1010
tag_name: string;
@@ -133,7 +133,6 @@ export const versionRouter = createTRPCRouter({
133133
return observable<{ type: 'log' | 'complete' | 'error'; message: string }>((emit) => {
134134
const logPath = join(process.cwd(), 'update.log');
135135
let lastSize = 0;
136-
let checkInterval: NodeJS.Timeout;
137136

138137
const checkLogFile = async () => {
139138
try {
@@ -156,16 +155,18 @@ export const versionRouter = createTRPCRouter({
156155
emit.next({ type: 'log', message: line });
157156
}
158157
}
159-
} catch (error) {
158+
} catch {
160159
// File might be being written to, ignore errors
161160
}
162161
};
163162

164163
// Start monitoring the log file
165-
checkInterval = setInterval(checkLogFile, 500);
164+
const checkInterval = setInterval(() => {
165+
void checkLogFile();
166+
}, 500);
166167

167168
// Also check immediately
168-
checkLogFile().catch(console.error);
169+
void checkLogFile();
169170

170171
// Cleanup function
171172
return () => {
@@ -195,7 +196,7 @@ export const versionRouter = createTRPCRouter({
195196
});
196197

197198
// Capture stdout and stderr to log file
198-
const logStream = require('fs').createWriteStream(logPath, { flags: 'a' });
199+
const logStream = createWriteStream(logPath, { flags: 'a' });
199200
child.stdout?.pipe(logStream);
200201
child.stderr?.pipe(logStream);
201202

0 commit comments

Comments
 (0)