1 | fs = require 'fs'
|
2 | path = require 'path'
|
3 | gulp = require './wrapper'
|
4 | Module = require './Module'
|
5 | gulpfile = require './gulpfile'
|
6 |
|
7 | module.exports = ({folder, gulp}) ->
|
8 | folder = path.resolve folder
|
9 | gulp.util.log 'Loading tasks from '+ (gulp.util.colors.magenta folder)
|
10 | try
|
11 | files = fs.readdirSync folder
|
12 | files.forEach (relative) ->
|
13 | try
|
14 | file = path.resolve folder, relative
|
15 | if fs.statSync(file).isFile()
|
16 | ext = path.extname file
|
17 | name = path.basename file, ext
|
18 | if ext is '.js' or /\.((lit)?coffee|coffee\.md)$/.test file
|
19 | gulp.util.log 'Found task \'' + (gulp.util.colors.cyan name) + '\''
|
20 | try
|
21 | taskModule = new Module(file, gulpfile)
|
22 | taskModule.load file
|
23 | task = taskModule.exports
|
24 | gulp.task name, task.dependencies ? [], task
|
25 | catch ex
|
26 | gulp.task name, [], () ->
|
27 | position = ex.stack.split('\n')[1].trim()
|
28 |
|
29 | gulp.util.log [
|
30 | gulp.util.colors.red(ex.name + ': ' + ex.message)
|
31 | ' in task \''
|
32 | gulp.util.colors.cyan name
|
33 | '\' '
|
34 | position
|
35 | ].join ''
|
36 | throw ex
|
37 | catch ex
|
38 | throw new gulp.util.PluginError 'gulp-tasks', ex
|
39 | catch ex
|
40 | throw new gulp.util.PluginError 'gulp-tasks', ex
|
41 | return gulp |
\ | No newline at end of file |