fs = require 'fs' {exec} = require 'child_process' # All coffeescript files required. FILES = [ 'shims.coffee' 'util.coffee' 'proxypair.coffee' 'websocket.coffee' 'snowflake.coffee' ] 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 'clean', 'remove all built files', -> exec 'rm -r build' exec 'rm -r test'