From 475abad54ebb205ed574eb3de2640a0d19844b93 Mon Sep 17 00:00:00 2001 From: Nate Sesti Date: Tue, 1 Aug 2023 01:22:46 -0700 Subject: start executables from vscode extension --- extension/server/exe/run-darwin | Bin 0 -> 16421088 bytes extension/server/exe/run-linux | Bin 0 -> 28788480 bytes extension/server/exe/run-win.exe | Bin 0 -> 15593484 bytes extension/src/activation/environmentSetup.ts | 55 ++++++++++++++++++++++++++- 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100755 extension/server/exe/run-darwin create mode 100644 extension/server/exe/run-linux create mode 100644 extension/server/exe/run-win.exe diff --git a/extension/server/exe/run-darwin b/extension/server/exe/run-darwin new file mode 100755 index 00000000..4d8323ef Binary files /dev/null and b/extension/server/exe/run-darwin differ diff --git a/extension/server/exe/run-linux b/extension/server/exe/run-linux new file mode 100644 index 00000000..3efe5633 Binary files /dev/null and b/extension/server/exe/run-linux differ diff --git a/extension/server/exe/run-win.exe b/extension/server/exe/run-win.exe new file mode 100644 index 00000000..30466272 Binary files /dev/null and b/extension/server/exe/run-win.exe differ diff --git a/extension/src/activation/environmentSetup.ts b/extension/src/activation/environmentSetup.ts index 50a2783a..5e2e3c0f 100644 --- a/extension/src/activation/environmentSetup.ts +++ b/extension/src/activation/environmentSetup.ts @@ -427,7 +427,60 @@ export async function startContinuePythonServer() { return; } - setupServerPath(); + console.log("Checking if server is old version"); + // Kill the server if it is running an old version + if (fs.existsSync(serverVersionPath())) { + const serverVersion = fs.readFileSync(serverVersionPath(), "utf8"); + if ( + serverVersion === getExtensionVersion() && + (await checkServerRunning(serverUrl)) + ) { + // The current version is already up and running, no need to continue + return; + } + } + console.log("Killing old server..."); + try { + await fkill(":65432"); + } catch (e: any) { + if (!e.message.includes("Process doesn't exist")) { + console.log("Failed to kill old server:", e); + } + } + + // Get name of the corresponding executable for platform + const exeDir = path.join(getExtensionUri().fsPath, "server", "exe"); + let exePath: string; + if (os.platform() === "win32") { + exePath = path.join(exeDir, "run-win.exe"); + } else if (os.platform() === "darwin") { + exePath = path.join(exeDir, "run-darwin"); + await runCommand(`xattr -dr com.apple.quarantine ${exePath}`); + } else { + exePath = path.join(exeDir, "run-linux"); + } + + // Run the executable + const child = spawn(exePath, { + shell: true, + }); + child.stderr.on("data", (data: any) => { + console.log(data.toString()); + }); + + child.on("error", (error: any) => { + console.log(`error: ${error.message}`); + }); + + child.on("close", (code: any) => { + console.log(`child process exited with code ${code}`); + }); + + child.stdout.on("data", (data: any) => { + console.log(`stdout: ${data.toString()}`); + }); + + return; return await retryThenFail(async () => { console.log("Checking if server is old version"); -- cgit v1.2.3-70-g09d2