UNPKG

1.43 kBtext/coffeescriptView Raw
1fs = require 'fs'
2path = require 'path'
3gulp = require './wrapper'
4Module = require './Module'
5gulpfile = require './gulpfile'
6
7module.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