You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.3 KiB
60 lines
1.3 KiB
module.exports = function(grunt) {
|
|
'use strict';
|
|
|
|
var http = require('http');
|
|
var port = 1337;
|
|
|
|
grunt.initConfig({
|
|
watch: {
|
|
nospawn: {
|
|
files: ['lib/nospawn.js'],
|
|
tasks: ['server'],
|
|
options: {
|
|
nospawn: true,
|
|
},
|
|
},
|
|
spawn: {
|
|
files: ['lib/spawn.js'],
|
|
tasks: ['server'],
|
|
},
|
|
interrupt: {
|
|
files: ['lib/interrupt.js'],
|
|
tasks: ['long', 'long', 'long'],
|
|
options: {
|
|
nospawn: true,
|
|
interrupt: true,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
// Load this watch task
|
|
grunt.loadTasks('../../../tasks');
|
|
|
|
// Our test server task
|
|
var server;
|
|
grunt.registerTask('server', function() {
|
|
if (!server) {
|
|
server = http.createServer(function(req, res) {
|
|
res.writeHead(200, {'Content-Type': 'text/plain'});
|
|
res.end('Server is talking!');
|
|
}).listen(port);
|
|
grunt.log.writeln('Server is listening...');
|
|
} else {
|
|
var done = this.async();
|
|
http.request({port: port}, function(res) {
|
|
res.on('data', function(buf) {
|
|
grunt.log.writeln(buf);
|
|
done();
|
|
});
|
|
}).end();
|
|
}
|
|
});
|
|
|
|
// A long running task
|
|
grunt.registerTask('long', function() {
|
|
setTimeout(this.async(), 2000);
|
|
});
|
|
|
|
grunt.registerTask('default', ['server', 'watch']);
|
|
};
|