var gulp = require('gulp-help')(require('gulp')); var bower = require('gulp-bower'); var nodemon = require('gulp-nodemon'); var path = require('path'); var fs = require('fs'); var spawn = require('child_process').spawn; var _ = require('lodash'); gulp.task('bower', function () { return bower() }); function readable(state, daemon) { var bunyan = state.bunyan; // free memory bunyan && bunyan.kill(); bunyan = state.bunyan = spawn('./node_modules/.bin/bunyan', [ '--output', 'short', '--color' ]); bunyan.stdout.pipe(process.stdout); bunyan.stderr.pipe(process.stderr); daemon.stdout.pipe(bunyan.stdin); daemon.stderr.pipe(bunyan.stdin); } gulp.task('diller-mqtt-reload', function () { }); gulp.task('diller-mqtt', function () { var state = {}; nodemon({ script: 'diller-mqtt.js', delay: 500, ext: 'js', watch: [ 'src' ], ignore: [ 'src/web/' ], env: {NODE_ENV: 'development'}, tasks: ['diller-mqtt-reload'], stdout: false, //readable: false, a: '' }).on('readable', function () { return readable(state, this); }); }); gulp.task('diller-web-reload', function () { }); gulp.task('diller-web', ['bower'], function () { nodemon({ script: 'diller-web.js', delay: 500, ext: 'js', watch: [ 'src' ], ignore: [ 'src/mqtt/' ], env: {NODE_ENV: 'development'}, tasks: ['diller-web-reload'] }); }); gulp.task('gen-systemd', function () { var config = { WorkingDirectory: process.cwd(), User: process.env.USER, Group: process.env.USER, NODE_ENV: 'prod' }; function gen(inPath, outPath) { var content = '' + fs.readFileSync(inPath); _.each(config, function (value, key) { content = content.replace('%' + key + '%', value); }); fs.writeFileSync(outPath, content); } gen('systemd/diller-mqtt.template.service', 'systemd/diller-mqtt.service'); gen('systemd/diller-web.template.service', 'systemd/diller-web.service'); }); gulp.task('default', ['bower']);