preview.coffee 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. async = require 'async'
  2. util = require 'util'
  3. {Config} = require './../core/config'
  4. {logger} = require './../core/logger'
  5. {loadEnv, commonUsage, commonOptions, extendOptions} = require './common'
  6. usage = """
  7. usage: wintersmith preview [options]
  8. options:
  9. -p, --port [port] port to run server on (defaults to #{ Config.defaults.port })
  10. -H, --hostname [host] host to bind server onto (defaults to INADDR_ANY)
  11. #{ commonUsage }
  12. all options can also be set in the config file
  13. examples:
  14. preview using a config file (assuming config.json is found in working directory):
  15. $ wintersmith preview
  16. """
  17. options =
  18. string: ['port', 'hostname']
  19. alias:
  20. port: 'p'
  21. hostname: 'H'
  22. extendOptions options, commonOptions
  23. preview = (argv) ->
  24. logger.info 'starting preview server'
  25. async.waterfall [
  26. (callback) ->
  27. # create environment
  28. loadEnv argv, callback
  29. (env, callback) ->
  30. # start preview server
  31. env.preview callback
  32. ], (error) ->
  33. if error
  34. logger.error error.message, error
  35. process.exit 1
  36. module.exports = preview
  37. module.exports.usage = usage
  38. module.exports.options = options