-
Notifications
You must be signed in to change notification settings - Fork 2
/
index.js
15 lines (13 loc) · 686 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import { exec } from 'child_process';
export default (cb, customCommands) => {
const lockCommands = customCommands || {
darwin: '/System/Library/CoreServices/"Menu Extras"/User.menu/Contents/Resources/CGSession -suspend',
win32: 'rundll32.exe user32.dll, LockWorkStation',
linux: '(hash gnome-screensaver-command 2>/dev/null && gnome-screensaver-command -l) || (hash dm-tool 2>/dev/null && dm-tool lock)'
};
if(Object.keys(lockCommands).indexOf(process.platform) === -1) {
throw new Error(`lockscreen doesn't support your platform (${process.platform})`);
} else {
exec(lockCommands[process.platform], (err, stdout) => cb ? cb(err, stdout) : null);
}
}