Fix frontend reset script and visual tweaks

This commit is contained in:
2025-02-11 22:15:13 -05:00
parent 67d57c8872
commit 4dcc1f9e90
4 changed files with 140 additions and 65 deletions

View File

@@ -85,8 +85,41 @@ function runScript(scriptPath, type, clients) {
child.stdout.on('data', (data) => {
const text = data.toString();
output += text;
// Send raw output directly
sendProgressToClients(clients, text);
// Split by lines to handle multiple JSON outputs
const lines = text.split('\n');
lines.filter(line => line.trim()).forEach(line => {
try {
// Try to parse as JSON but don't let it affect the display
const jsonData = JSON.parse(line);
// Only end the process if we get a final status
if (jsonData.status === 'complete' || jsonData.status === 'error' || jsonData.status === 'cancelled') {
if (jsonData.status === 'complete' && !jsonData.operation?.includes('complete')) {
// Don't close for intermediate completion messages
sendProgressToClients(clients, line);
return;
}
// Close only on final completion/error/cancellation
switch (type) {
case 'update':
activeFullUpdate = null;
break;
case 'reset':
activeFullReset = null;
break;
}
if (jsonData.status === 'error') {
reject(new Error(jsonData.error || 'Unknown error'));
} else {
resolve({ output });
}
}
} catch (e) {
// Not JSON, just display as is
}
// Always send the raw line
sendProgressToClients(clients, line);
});
});
child.stderr.on('data', (data) => {
@@ -110,10 +143,8 @@ function runScript(scriptPath, type, clients) {
const error = `Script ${scriptPath} exited with code ${code}`;
sendProgressToClients(clients, error);
reject(new Error(error));
} else {
sendProgressToClients(clients, `${type} completed successfully`);
resolve({ output });
}
// Don't resolve here - let the completion message from the script trigger the resolve
});
child.on('error', (err) => {