neft
Version:
Universal Platform
53 lines (42 loc) • 1.22 kB
text/coffeescript
'use strict'
fs = require 'fs-extra'
utils = require 'src/utils'
log = require 'src/log'
notify = require './notify'
parseApp = require './parse'
createBundle = require './bundle'
saveBundle = require './saveBundle'
log = log.scope 'build'
Log = Neft.log.constructor
module.exports = (platform, options, callback) ->
log.info platform
Log.setGlobalLinesPrefix ' '
# create build folder
fs.ensureDirSync './build'
stack = new utils.async.Stack
args = [platform, options, null]
# create temporary 'index.js' file
stack.add ((platform, options, callback) ->
parseApp platform, options, (err, app) ->
args[2] = app
callback err
), null, args
# create bundle files
stack.add createBundle, null, args
# save output if needed
if options.out
stack.add saveBundle, null, args
# notify
if options.notify
callback = do (callback) -> (err) ->
notify err
callback err
# run
stack.runAll (err) ->
Log.setGlobalLinesPrefix ''
if err
log.error err?.stack or err
log.error platform
else
log.ok platform
callback err