UNPKG

1.02 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3// dpw@alameda.local
4// 2015.03.04
5'use strict';
6
7const fs = require('fs');
8const spawn = require('child_process').spawn;
9const clearScreen = '';
10
11let files = new Set();
12let tid;
13
14const run = function() {
15 process.stdout.write( clearScreen );
16 console.log('Changed files: ', files);
17
18 let runner = spawn( 'make', [ 'test' ] );
19
20 runner.stdout.on('data', function( data ) {
21 process.stdout.write( data );
22 });
23
24 runner.stderr.on('data', function( data ) {
25 process.stdout.write( data );
26 });
27
28 runner.on('close', function(code) {
29 tid = null;
30 files.clear();
31 });
32};
33
34const changeHandler = function(event, filename) {
35 if ( filename.endsWith('.js') ) {
36 files.add( filename );
37
38 if (!tid) {
39 tid = setTimeout(function() {
40 run();
41 }, 250);
42 }
43 }
44};
45
46// run();
47fs.watch( './lib', { recursive:true }, changeHandler );
48fs.watch( './test', { recursive:true }, changeHandler );
49