stop-server
Version:
Stop your computer using your phone or your tablet, from your bed or your couch
62 lines (51 loc) • 1.54 kB
JavaScript
var os = require('os')
var path = require('path')
var updateNotifier = require('update-notifier')
var sudoBlock = require('sudo-block')
var startup = require('user-startup')
var chalk = require('chalk')
var got = require('got')
var address = require('network-address')
var pkg = require('./package.json')
sudoBlock('Should not be run as root, please retry without sudo.')
updateNotifier({pkg: pkg}).notify()
function stop () {
startup.remove('stop-server')
got.delete('localhost:' + 5709)
}
function start () {
var log = path.join(os.tmpdir(), 'stop-server')
startup.create('stop-server', process.execPath, [__dirname], log)
if (os.platform() !== 'win32') {
console.log(
[
'',
'---',
'To complete installation, you need to allow \'shutdown\' to be run without sudo.',
'Please run ' + chalk.cyan('sudo visudo') + ' and add ' + chalk.cyan('your-username ALL=NOPASSWD: /sbin/shutdown'),
'---'
].join('\n')
)
}
console.log(
[
'',
'To access stop-server from your phone, scan the QR code here',
chalk.cyan('http://localhost:5709/qr.html'),
'',
'Or go directly to',
chalk.cyan('http://' + address() + ':5709'),
''
].join('\n')
)
}
var yargs = require('yargs')
.version(pkg.version)
.alias('v', 'version')
.usage('Usage: $0 start|stop')
.demand(1)
var argv = yargs.argv
if (argv._[0] === 'start') return start()
if (argv._[0] === 'stop') return stop()
console.log(yargs.showHelp)