Files
audio-capture/gulpfile.js

88 lines
2.2 KiB
JavaScript

var gulp = require('gulp');
var gutil = require('gulp-util');
var gless = require('gulp-less');
var gclint = require('gulp-coffeelint');
var gcoffee = require('gulp-coffee');
var _ = require('lodash');
var lr = require('tiny-lr');
var static = require('node-static');
var exec = require('child_process').exec;
var server = lr();
var config = {
paths: {
less: {
src: 'src/less/**/*.less',
dest: 'public/css'
},
coffee: {
src: 'src/coffee/**/*.coffee',
dest: 'public/js'
}
},
webport: 8080,
lrport: 35729
};
gulp.task('less', function() {
gulp.src(config.paths.less.src)
.pipe(gless({ sourceMap: true }))
.pipe(gulp.dest(config.paths.less.dest));
});
gulp.task('lint', function() {
gulp.src(config.paths.coffee.src)
.pipe(gclint());
});
gulp.task('coffee', ['lint'], function() {
gulp.src(config.paths.coffee.src)
.pipe(gcoffee({ bare: true }))
.pipe(gulp.dest(config.paths.coffee.dest));
});
gulp.task('tiny', function(next) {
server.listen(config.lrport, function(err) {
if (err) {
return console.error(err);
}
gutil.log('Server listening on port: ', config.lrport);
next();
});
});
gulp.task('server', function(next) {
var file = new static.Server('./public', { cache: false });
require('http').createServer(function(req, res) {
req.addListener('end', function() {
file.serve(req, res);
}).resume();
}).listen(config.webport, function() {
gutil.log('Server listening on port: ', config.webport);
next();
});
});
gulp.task('open', function(next) {
exec('open http://localhost:' + config.webport, function() {
next();
});
})
gulp.task('watch', ['tiny'], function () {
gulp.watch(config.paths.less.src, ['less']);
gulp.watch(config.paths.coffee.src, ['coffee']);
gulp.watch(['./public/**/*', '!./public/vendor/**/*'], function(e) {
gutil.log('Notifying browser of changes');
server.changed({
body: {
files: [e.path]
}
});
});
});
gulp.task('default', ['less', 'coffee', 'server', 'watch']);