53 lines
1.6 KiB
JavaScript
Executable File
53 lines
1.6 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
var wol = require('./wake_on_lan')
|
|
, path = require('path')
|
|
, argv = require('minimist')(process.argv.slice(2));
|
|
;
|
|
|
|
process.title = path.basename(__filename);
|
|
|
|
if (argv.h || argv.help) {
|
|
showHelp();
|
|
process.exit(0);
|
|
}
|
|
|
|
if (!argv['_'].length) {
|
|
showHelp();
|
|
process.exit(1);
|
|
}
|
|
|
|
var mac = argv['_'][0];
|
|
|
|
var options = {};
|
|
(argv.a || argv.address) && (options.address = argv.a || argv.address);
|
|
(argv.n || argv.num_packets) && (options.num_packets = argv.n || argv.num_packets);
|
|
(argv.i || argv.interval) && (options.interval = argv.i || argv.interval);
|
|
(argv.p || argv.port) && (options.port = argv.p || argv.port);
|
|
|
|
console.log('sending magic packet to %s', mac);
|
|
console.log('options %j ', options);
|
|
|
|
wol.wake(mac, options, function(error) {
|
|
if (error) {
|
|
console.log("kaputt: " + error);
|
|
} else {
|
|
console.log('done sending WoL packets');
|
|
}
|
|
});
|
|
|
|
|
|
function showHelp () {
|
|
console.log('Usage: ' + process.title + ' [options] MAC');
|
|
console.log('\nOptions:');
|
|
console.log('-a | --address Broadcast address, ipv4/ipv6, defaults to 255.255.255.255');
|
|
console.log('-n | --num_packets Number of packets to send, defaults to 3');
|
|
console.log('-i | --interval Interval between each packet, defaults to 100');
|
|
console.log('-p | --port UDP port of the target destination, defaults to 9');
|
|
console.log('-h | --help Show help');
|
|
console.log('\nExamples:');
|
|
console.log('wake 20:DE:20:DE:20:DE');
|
|
console.log('wake -a 192.168.1.255 20-DE-20-DE-20-DE');
|
|
console.log('wake --num_packets 10 --interval 50 -p 9 20DE20DE20DE');
|
|
}
|