|
| 1 | +/* jshint node: true */ |
1 | 2 | "use strict"; |
2 | 3 |
|
3 | 4 | var gulp = require("gulp"); |
| 5 | +var jshint = require("gulp-jshint"); |
| 6 | +var jscs = require("gulp-jscs"); |
4 | 7 | var plumber = require("gulp-plumber"); |
5 | 8 | var purescript = require("gulp-purescript"); |
6 | | -var jsvalidate = require("gulp-jsvalidate"); |
| 9 | +var rimraf = require("rimraf"); |
7 | 10 |
|
8 | | -var paths = [ |
| 11 | +var sources = [ |
9 | 12 | "src/**/*.purs", |
10 | 13 | "bower_components/purescript-*/src/**/*.purs" |
11 | 14 | ]; |
12 | 15 |
|
13 | | -gulp.task("make", function() { |
14 | | - return gulp.src(paths) |
15 | | - .pipe(plumber()) |
16 | | - .pipe(purescript.pscMake()); |
| 16 | +var foreigns = [ |
| 17 | + "src/**/*.js", |
| 18 | + "bower_components/purescript-*/src/**/*.js" |
| 19 | +]; |
| 20 | + |
| 21 | +gulp.task("clean-docs", function (cb) { |
| 22 | + rimraf("docs", cb); |
17 | 23 | }); |
18 | 24 |
|
19 | | -gulp.task("jsvalidate", ["make"], function () { |
20 | | - return gulp.src("output/**/*.js") |
21 | | - .pipe(plumber()) |
22 | | - .pipe(jsvalidate()); |
| 25 | +gulp.task("clean-output", function (cb) { |
| 26 | + rimraf("output", cb); |
23 | 27 | }); |
24 | 28 |
|
25 | | -var docTasks = []; |
| 29 | +gulp.task("clean", ["clean-docs", "clean-output"]); |
26 | 30 |
|
27 | | -var docTask = function(name) { |
28 | | - var taskName = "docs-" + name.toLowerCase(); |
29 | | - gulp.task(taskName, function () { |
30 | | - return gulp.src("src/" + name.replace(/\./g, "/") + ".purs") |
31 | | - .pipe(plumber()) |
32 | | - .pipe(purescript.pscDocs()) |
33 | | - .pipe(gulp.dest("docs/" + name + ".md")); |
34 | | - }); |
35 | | - docTasks.push(taskName); |
36 | | -}; |
| 31 | +gulp.task("lint", function() { |
| 32 | + return gulp.src("src/**/*.js") |
| 33 | + .pipe(jshint()) |
| 34 | + .pipe(jshint.reporter()) |
| 35 | + .pipe(jscs()); |
| 36 | +}); |
37 | 37 |
|
38 | | -["Data.Char", "Data.String", "Data.String.Regex", "Data.String.Unsafe"].forEach(docTask); |
| 38 | +gulp.task("make", ["lint"], function() { |
| 39 | + return gulp.src(sources) |
| 40 | + .pipe(plumber()) |
| 41 | + .pipe(purescript.pscMake({ ffi: foreigns })); |
| 42 | +}); |
39 | 43 |
|
40 | | -gulp.task("docs", docTasks); |
| 44 | +gulp.task("docs", ["clean-docs"], function () { |
| 45 | + return gulp.src(sources) |
| 46 | + .pipe(plumber()) |
| 47 | + .pipe(purescript.pscDocs({ |
| 48 | + docgen: { |
| 49 | + "Data.Char": "docs/Data.Char.md", |
| 50 | + "Data.String": "docs/Data.String.md", |
| 51 | + "Data.String.Regex": "docs/Data.String.Regex.md", |
| 52 | + "Data.String.Unsafe": "docs/Data.String.Unsafe.md" |
| 53 | + } |
| 54 | + })); |
| 55 | +}); |
41 | 56 |
|
42 | 57 | gulp.task("dotpsci", function () { |
43 | | - return gulp.src(paths) |
| 58 | + return gulp.src(sources) |
44 | 59 | .pipe(plumber()) |
45 | 60 | .pipe(purescript.dotPsci()); |
46 | 61 | }); |
47 | 62 |
|
48 | | -gulp.task("default", ["jsvalidate", "docs", "dotpsci"]); |
| 63 | +gulp.task("default", ["make", "docs", "dotpsci"]); |
0 commit comments