snowflake/proxy/Cakefile
2016-01-15 08:47:06 -08:00

50 lines
1.2 KiB
CoffeeScript

fs = require 'fs'
{spawn, exec} = require 'child_process'
# All coffeescript files required.
FILES = [
'shims.coffee'
'util.coffee'
'proxypair.coffee'
'websocket.coffee'
'snowflake.coffee'
]
FILES_TEST = [
'snowflake_test.coffee'
]
FILES_ALL = FILES.concat FILES_TEST
OUTFILE = 'build/snowflake.coffee'
STATIC = 'static'
concatCoffeeFiles = -> exec 'cat ' + FILES.join(' ') + ' | cat > ' + OUTFILE
copyStaticFiles = -> exec 'cp ' + STATIC + '/* build/'
compileCoffee = ->
exec 'coffee -o build -c build/snowflake.coffee', (err, stdout, stderr) ->
throw err if err
task 'test', 'snowflake unit tests', ->
exec 'mkdir -p test'
testFile = 'test/snowflake.bundle.coffee'
exec 'cat ' + FILES.join(' ') + ' snowflake_test.coffee | cat > ' + testFile
exec 'coffee ' + testFile + ' -v', (err, stdout, stderr) ->
throw err if err
console.log stdout + stderr
task 'build', 'build the snowflake proxy', ->
exec 'mkdir -p build'
concatCoffeeFiles()
copyStaticFiles()
compileCoffee()
console.log 'Snowflake prepared.'
task 'lint', 'ensure idiomatic coffeescript', ->
spawn 'coffeelint', FILES_ALL, {
file: 'coffeelint.json'
stdio: 'inherit'
}
task 'clean', 'remove all built files', ->
exec 'rm -r build'
exec 'rm -r test'