import { exec } from 'child_process'; export function reboot(): Promise<{ succeed: boolean; message?: string }> { if (process.platform === 'win32') { return rebootWindows(); } else if (process.platform === 'linux') { return rebootLinux(); } return Promise.resolve({ succeed: false, message: 'Platform not supported', }); } function rebootWindows(): Promise<{ succeed: boolean; message?: string }> { return new Promise<{ succeed: boolean; message?: string }>( (resolve, reject) => { exec('shutdown /r /t 3', (error, stdout, stderr) => { if (error) { console.error( `Error shutting down Windows: ${error.message}` ); return resolve({ succeed: false, message: error.message }); } if (stderr) { console.error(`Error shutting down Windows: ${stderr}`); return resolve({ succeed: false, message: stderr }); } console.log(`Windows 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 }); // }); // } // ); }