waigo
Version:
Node.js ES6 framework for reactive, data-driven apps and APIs (Koa, RethinkDB)
65 lines (46 loc) • 1.26 kB
text/coffeescript
_ = require 'lodash'
path = require('path')
fs = require 'fs'
gulp = require('gulp')
gutil = require 'gulp-util'
args = require('yargs').argv
console.log(args);
options =
minifiedBuild: !!args.minified
dontExitOnError: false
onlyTest: args.onlyTest || args.limitTest
ci: !!args.ci
if options.minifiedBuild
console.log 'MINIFIED build'
else
console.log 'Non-MINIFIED build'
paths =
npm: path.join(__dirname, 'node_modules')
projectRoot: __dirname
test: path.join(__dirname, 'test')
frontend:
src: path.join(__dirname, 'src', 'frontend')
build: path.join(__dirname, 'public')
lib: path.join(__dirname, 'public', 'lib')
tasksFolder = path.join(__dirname, 'gulp')
taskFiles = fs.readdirSync tasksFolder
tasks = {}
for tf in taskFiles
if '.coffee' isnt path.extname(tf)
continue
taskName = path.basename(tf, '.coffee')
tasks[taskName] = tf
_.each tasks, (file, name) ->
constructorFn = require(path.join(tasksFolder, file))
{ handler, deps } = constructorFn(paths, options, tasks)
handler or= undefined
deps or = []
gulp.task name, deps, handler
gulp.task 'default', ['dev']