const http = require('http') const cfg = require('./config') const logger = require('./logger') const helper = require('./helper') exports.stop = function (config, done) { config = config || {} logger.setupFromConfig(config) const log = logger.create('stopper') done = helper.isFunction(done) ? done : process.exit config = cfg.parseConfig(config.configFile, config) const request = http.request({ hostname: config.hostname, path: config.urlRoot + 'stop', port: config.port, method: 'GET' }) request.on('response', function (response) { if (response.statusCode === 200) { log.info('Server stopped.') done(0) } else { log.error(`Server returned status code: ${response.statusCode}`) done(1) } }) request.on('error', function (e) { if (e.code === 'ECONNREFUSED') { log.error(`There is no server listening on port ${config.port}`) done(1, e.code) } else { throw e } }) request.end() }