stopper.js 992 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. const http = require('http')
  2. const cfg = require('./config')
  3. const logger = require('./logger')
  4. const helper = require('./helper')
  5. exports.stop = function (config, done) {
  6. config = config || {}
  7. logger.setupFromConfig(config)
  8. const log = logger.create('stopper')
  9. done = helper.isFunction(done) ? done : process.exit
  10. config = cfg.parseConfig(config.configFile, config)
  11. const request = http.request({
  12. hostname: config.hostname,
  13. path: config.urlRoot + 'stop',
  14. port: config.port,
  15. method: 'GET'
  16. })
  17. request.on('response', function (response) {
  18. if (response.statusCode === 200) {
  19. log.info('Server stopped.')
  20. done(0)
  21. } else {
  22. log.error(`Server returned status code: ${response.statusCode}`)
  23. done(1)
  24. }
  25. })
  26. request.on('error', function (e) {
  27. if (e.code === 'ECONNREFUSED') {
  28. log.error(`There is no server listening on port ${config.port}`)
  29. done(1, e.code)
  30. } else {
  31. throw e
  32. }
  33. })
  34. request.end()
  35. }