'use strict';

var gulp = require('gulp');
var gutil = require('gulp-util');
var _ = require('lodash');
var klawSync = require('klaw-sync');

var options = {
  src: 'client/app',
  dist: 'dist/app',
  tmp: '.tmp/app',
  e2e: 'e2e/app',
  errorHandler: function(title) {
    return function(err) {
      gutil.log(gutil.colors.red('[' + title + ']'), err.toString());
      this.emit('end');
    };
  }
};

klawSync('./gulp', {nodir: true})
  .filter(function(file) {
    return (/\.(js|coffee)$/i).test(file.path);
  })
  .map(function(file) {
    require(file.path)(options);
  });

gulp.task('default', ['clean'], function () {
  return gulp.start('build');
});
