]> git.immae.eu Git - github/fretlink/purs-loader.git/blob - gulpfile.js
Merge pull request #20 from ethul/topic/issue-18
[github/fretlink/purs-loader.git] / gulpfile.js
1 'use strict';
2
3 var path = require('path');
4
5 var gulp = require('gulp');
6
7 var gutil = require('gulp-util');
8
9 var plumber = require('gulp-plumber');
10
11 var purescript = require('gulp-purescript');
12
13 var sequence = require('run-sequence');
14
15 var del = require('del');
16
17 var config = { del: ['build', 'index.js']
18 , purescript: { src: [ 'bower_components/purescript-*/src/**/*.purs*'
19 , 'src/**/*.purs'
20 ]
21 , dest: 'build'
22 , docs: 'MODULE.md'
23 }
24 }
25 ;
26
27 function error(e) {
28 gutil.log(gutil.colors.magenta('>>>> Error <<<<') + '\n' + e.toString().trim());
29 this.emit('end');
30 }
31
32 gulp.task('del', function(cb){
33 del(config.del, cb);
34 });
35
36 gulp.task('make', function(){
37 return gulp.src(config.purescript.src).
38 pipe(plumber()).
39 pipe(purescript.pscMake({output: config.purescript.dest})).
40 on('error', error);
41 });
42
43 gulp.task('psci', function(){
44 return gulp.src(config.purescript.src).
45 pipe(plumber()).
46 pipe(purescript.dotPsci()).
47 on('error', error);
48 });
49
50 gulp.task('docs', function(){
51 return gulp.src(config.purescript.src[1]).
52 pipe(plumber()).
53 pipe(purescript.pscDocs()).
54 on('error', error).
55 pipe(gulp.dest(config.purescript.docs));
56 });
57
58 gulp.task('watch', function(){
59 gulp.watch(config.purescript.src, ['make']);
60 });
61
62 gulp.task('default', function(callback){
63 sequence('del', 'make', ['psci', 'docs'], callback);
64 });
65
66 gulp.task('build', function(callback){
67 sequence('del', 'make', callback);
68 });