From 1810379f745c8b8062e4c34c19fced66446d122a Mon Sep 17 00:00:00 2001 From: Mees van der Wijk Date: Fri, 24 Oct 2025 17:33:22 +0200 Subject: [PATCH] Added rebooting linux path --- dist/Reboot.js | 64 ++++++++++++++++++++++++++++++++++++++-------- dist/Reboot.js.map | 2 +- src/Reboot.ts | 46 +++++++++++++++++++-------------- 3 files changed, 81 insertions(+), 31 deletions(-) diff --git a/dist/Reboot.js b/dist/Reboot.js index 2f4121c..98e09d4 100644 --- a/dist/Reboot.js +++ b/dist/Reboot.js @@ -1,4 +1,40 @@ "use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.reboot = reboot; var child_process_1 = require("child_process"); @@ -31,18 +67,24 @@ function rebootWindows() { }); } function rebootLinux() { - return new Promise(function (resolve, reject) { - (0, child_process_1.exec)('shutdown -r now', function (error, stdout, stderr) { - if (error) { - console.error("Error shutting down Linux: ".concat(error.message)); - return resolve({ succeed: false, message: error.message }); + return __awaiter(this, void 0, void 0, function () { + var request, response, error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 3, , 4]); + return [4 /*yield*/, fetch('http://127.0.0.1:6302/rebootNow')]; + case 1: + request = _a.sent(); + return [4 /*yield*/, request.json()]; + case 2: + response = _a.sent(); + return [2 /*return*/, response]; + case 3: + error_1 = _a.sent(); + return [2 /*return*/, { succeed: false, message: error_1.message }]; + case 4: return [2 /*return*/]; } - if (stderr) { - console.error("Error shutting down Linux: ".concat(stderr)); - return resolve({ succeed: false, message: stderr }); - } - console.log("Linux shutdown command executed: ".concat(stdout)); - resolve({ succeed: true }); }); }); } diff --git a/dist/Reboot.js.map b/dist/Reboot.js.map index c557557..1ec3332 100644 --- a/dist/Reboot.js.map +++ b/dist/Reboot.js.map @@ -1 +1 @@ -{"version":3,"file":"Reboot.js","sourceRoot":"","sources":["../src/Reboot.ts"],"names":[],"mappings":";;AAEA,wBAWC;AAbD,+CAAqC;AAErC,SAAgB,MAAM;IACrB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAClC,OAAO,aAAa,EAAE,CAAC;IACxB,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzC,OAAO,WAAW,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC;QACtB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,wBAAwB;KACjC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa;IACrB,OAAO,IAAI,OAAO,CACjB,UAAC,OAAO,EAAE,MAAM;QACf,IAAA,oBAAI,EAAC,kBAAkB,EAAE,UAAC,KAAK,EAAE,MAAM,EAAE,MAAM;YAC9C,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CACZ,uCAAgC,KAAK,CAAC,OAAO,CAAE,CAC/C,CAAC;gBACF,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,uCAAgC,MAAM,CAAE,CAAC,CAAC;gBACxD,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,6CAAsC,MAAM,CAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACJ,CAAC,CACD,CAAC;AACH,CAAC;AAED,SAAS,WAAW;IACnB,OAAO,IAAI,OAAO,CACjB,UAAC,OAAO,EAAE,MAAM;QACf,IAAA,oBAAI,EAAC,iBAAiB,EAAE,UAAC,KAAK,EAAE,MAAM,EAAE,MAAM;YAC7C,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CACZ,qCAA8B,KAAK,CAAC,OAAO,CAAE,CAC7C,CAAC;gBACF,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,qCAA8B,MAAM,CAAE,CAAC,CAAC;gBACtD,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,2CAAoC,MAAM,CAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACJ,CAAC,CACD,CAAC;AACH,CAAC"} \ No newline at end of file +{"version":3,"file":"Reboot.js","sourceRoot":"","sources":["../src/Reboot.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAWC;AAbD,+CAAqC;AAErC,SAAgB,MAAM;IACrB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAClC,OAAO,aAAa,EAAE,CAAC;IACxB,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzC,OAAO,WAAW,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC;QACtB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,wBAAwB;KACjC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa;IACrB,OAAO,IAAI,OAAO,CACjB,UAAC,OAAO,EAAE,MAAM;QACf,IAAA,oBAAI,EAAC,kBAAkB,EAAE,UAAC,KAAK,EAAE,MAAM,EAAE,MAAM;YAC9C,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CACZ,uCAAgC,KAAK,CAAC,OAAO,CAAE,CAC/C,CAAC;gBACF,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,uCAAgC,MAAM,CAAE,CAAC,CAAC;gBACxD,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,6CAAsC,MAAM,CAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACJ,CAAC,CACD,CAAC;AACH,CAAC;AAED,SAAe,WAAW;;;;;;;oBAER,qBAAM,KAAK,CAAC,iCAAiC,CAAC,EAAA;;oBAAxD,OAAO,GAAG,SAA8C;oBAC7C,qBAAM,OAAO,CAAC,IAAI,EAAE,EAAA;;oBAA/B,QAAQ,GAAG,SAAoB;oBAErC,sBAAO,QAAQ,EAAC;;;oBAEhB,sBAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAG,OAAe,CAAC,OAAO,EAAE,EAAC;;;;;CAoB9D"} \ No newline at end of file diff --git a/src/Reboot.ts b/src/Reboot.ts index b568b8c..050775f 100644 --- a/src/Reboot.ts +++ b/src/Reboot.ts @@ -34,23 +34,31 @@ function rebootWindows(): Promise<{ succeed: boolean; message?: string }> { ); } -function rebootLinux(): Promise<{ succeed: boolean; message?: string }> { - return new Promise<{ succeed: boolean; message?: string }>( - (resolve, reject) => { - exec('shutdown -r now', (error, stdout, stderr) => { - if (error) { - console.error( - `Error shutting down Linux: ${error.message}` - ); - return resolve({ succeed: false, message: error.message }); - } - if (stderr) { - console.error(`Error shutting down Linux: ${stderr}`); - return resolve({ succeed: false, message: stderr }); - } - console.log(`Linux shutdown command executed: ${stdout}`); - resolve({ succeed: true }); - }); - } - ); +async function rebootLinux(): Promise<{ succeed: boolean; message?: string }> { + try { + const request = await fetch('http://127.0.0.1:6302/rebootNow'); + const response = await request.json(); + + return response; + } catch (error) { + return { succeed: false, message: (error as Error).message }; + } + // return new Promise<{ succeed: boolean; message?: string }>( + // (resolve, reject) => { + // exec('shutdown -r now', (error, stdout, stderr) => { + // if (error) { + // console.error( + // `Error shutting down Linux: ${error.message}` + // ); + // return resolve({ succeed: false, message: error.message }); + // } + // if (stderr) { + // console.error(`Error shutting down Linux: ${stderr}`); + // return resolve({ succeed: false, message: stderr }); + // } + // console.log(`Linux shutdown command executed: ${stdout}`); + // resolve({ succeed: true }); + // }); + // } + // ); }