fs = require 'fs' {exec,spawn} = require 'child_process' util = require 'util' sources = [ 'markdown.coffee' 'utils.coffee' 'view.coffee' 'unit.coffee' 'character.coffee' 'room.coffee' 'localize.coffee' 'random.coffee' 'salet.coffee' ] sourcestring = "" for source in sources sourcestring += 'src/'+source+' ' task 'watch', 'Watch source files and build changes', -> watch = spawn "coffee", ['-c', '-w', '--no-header', '-j', 'lib/index.js', sourcestring] watch.stdout.on 'data', (data) -> console.log data.toString().trim() task 'build', 'Compile all CoffeeScript files', -> # prepare lib directory if not fs.existsSync 'lib' fs.mkdirSync 'lib' # run coffee-script compile exec "cat #{sourcestring} | coffee --compile --stdio --no-header > lib/index.js", (err, stdout, stderr) -> if err util.log err process.exit 1 # abort npm packaging util.log "Compiled CoffeeScript." exec "closure-compiler --compilation_level ECMASCRIPT5 --compilation_level SIMPLE --js_output_file lib/index.min.js lib/index.js", (err) -> if err util.log err process.exit 1 # abort npm packaging util.log "Minified JavaScript."