34 lines
924 B
TypeScript
34 lines
924 B
TypeScript
import { exec } from 'child_process';
|
|
|
|
export function shutdown(): Promise<{ succeed: boolean; message?: string }> {
|
|
if (process.platform === 'win32') {
|
|
return shutdownWindows();
|
|
}
|
|
|
|
return Promise.resolve({
|
|
succeed: false,
|
|
message: 'Platform not supported',
|
|
});
|
|
}
|
|
|
|
function shutdownWindows(): Promise<{ succeed: boolean; message?: string }> {
|
|
return new Promise<{ succeed: boolean; message?: string }>(
|
|
(resolve, reject) => {
|
|
exec('shutdown /s /t 5', (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 });
|
|
});
|
|
}
|
|
);
|
|
}
|