main changes

This commit is contained in:
2026-03-19 17:58:56 +00:00
parent 0c74b1b47f
commit dc908ef251
2 changed files with 914 additions and 100 deletions

71
app.js
View File

@@ -14,6 +14,9 @@ const orgRoamBtn = document.getElementById("orgRoamBtn");
const orgRoamResult = document.getElementById("orgRoamResult");
const orgRoamLogs = document.getElementById("orgRoamLogs");
const orgRoamBtn2 = document.getElementById("orgRoamBtn2");
let emacsEventSource = null;
let webEventSource = null;
let roamEventSource = null;
@@ -190,6 +193,73 @@ async function pollRoamStatus() {
}, 2000);
}
/* =========================================
ORG ROAM BUILD 2 (EXAMPLE OF SECOND BUILD BUTTON)
========================================= */
async function rerunEmacs() {
if (!confirm("Rerun Emacs now?")) return;
orgRoamBtn2.disabled = true;
orgRoamResult.textContent = "🔄 Running Emacs...";
roamDot.className = "dot yellow";
orgRoamLogs.textContent = "";
try {
const res = await fetch("/api/rerun-emacs", { method: "POST" });
if (!res.ok) throw new Error();
closeStream(emacsEventSource);
startLogStream("/api/rerun-emacs/logs", orgRoamLogs, src => emacsEventSource = src);
pollEmacsStatus();
} catch {
orgRoamResult.textContent = "❌ Could not start Emacs";
orgRoamBtn2.disabled = false;
roamDot.className = "dot red";
}
}
async function pollEmacsStatus() {
const interval = setInterval(async () => {
const res = await fetch("/api/rerun-emacs/status");
const status = await res.json();
if (!status.running) {
clearInterval(interval);
closeStream(emacsEventSource);
orgRoamBtn2.disabled = false;
if (status.lastExitCode === 0 || status.lastExitCode === 124) {
orgRoamResult.textContent = "✅ Emacs completed";
roamDot.className = "dot green";
} else {
orgRoamResult.textContent =
"⚠ Emacs finished with issue (code " + status.lastExitCode + ")";
roamDot.className = "dot red";
}
}
}, 2000);
}
/* =========================================
DAILY MESSAGE
========================================= */
@@ -250,3 +320,4 @@ startCountdown();
fetchHealth();
buildBtn.addEventListener("click", runWebBuild);
orgRoamBtn.addEventListener("click", runOrgRoamBuild);
orgRoamBtn2.addEventListener("click", rerunEmacs);