Skip to content

Instantly share code, notes, and snippets.

@calvinfroedge
Created May 29, 2015 16:46
Show Gist options
  • Save calvinfroedge/abc819cfc5d967350f9c to your computer and use it in GitHub Desktop.
Save calvinfroedge/abc819cfc5d967350f9c to your computer and use it in GitHub Desktop.
Gulpfile, coffeescript live reload server and all output to stdout, stderr
var
spawn = require('child_process').spawn,
fs = require('fs'),
gulp = require('gulp'),
watch = require('gulp-watch');
var SERVER_SRC = './server/'
var paths = {
server: [SERVER_SRC+'*', SERVER_SRC+'**/*']
}
gulp.task('server-dev', [], function(){
var p;
var server = function(){
if(p) p.kill();
var envString = function(file){
return fs.readFileSync(process.env.credentialsDir+file+'.json').toString().replace(/ /g, '');
}
var envVars = ['auth0', 'cloudant'];
envVars.map(function(v){
process.env[v] = envString(v);
});
p = spawn('coffee', [SERVER_SRC+'server.coffee'], {env: process.env});
var events = ['data', 'error', 'exit', 'close', 'disconnect', 'message'];
var stream = function(type, event, data){
console.log('('+type+') Server event: '+event+'\nOutput from server: \n' + data+'\n');
}
events.map(function(event){
p.stdout.on(event, function(data){
stream('stdout', event, data);
});
p.stderr.on(event, function(data){
stream('stderr', event, data);
});
});
}
server();
gulp.watch(paths.server, function(){
console.log('restarting server...');
server();
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment