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 }); }); } ); } 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 }); }); } ); }