1.4.1 • Published 9 years ago
nano-sched v1.4.1
nano-sched
Flexible anything processing scheduler
Usage
var Mill = require('../'),
fs = require('nano-fs'),
Path = require('path'),
Promise = require('nano-promise');
var mill = Mill({
plugins_folder: './plugins',
sources_folder: './src',
dist_folder: './dist',
dumps_folder: './log',
rules: {
'js': [ /^.*\.js$/, ' > file.load, upcase, file.save > ' ]
}
});
mill.install('read-plugins', function readPlugins(log, opts) {
return fs.readdir(opts.plugins_folder || './plugins')
.then(function (list) {
return Promise.all(list
.map(function (name) {
if (!/^[^.].*\.js$/.test(name))
return;
return fs.readFile(Path.join(opts.plugins_folder, name), 'utf8')
.then(function (text) {
mill.install(name.replace(/([^/]*)\.js$/,'$1'), text);
});
}));
});
});
mill.install('read-tree', function readtree(log, opts) {
return fs.readTree(opts.src_folder || './src')
.then(function (list) {
opts.files = list;
});
});
mill.install('files', function (log, opts) {
var sched = mill.sched(' rules'),
rules = opts.rules,
files = opts.files;
for (var id in rules) {
var rule = rules[id],
re = /./;
if (rule[0] instanceof RegExp)
re = rule.splice(0,1)[0];
files.forEach(function (name) {
if (!re.test(name))
return;
var job = sched.job(name, {
opts: opts,
name: name
});
rule.forEach(function (seq) {
job.seq(seq);
});
});
}
return sched.start();
});
mill
.sched('build')
.job('init', mill.opts)
.seq(' > (read-plugins | read-tree), files > ')
.up
.start();
1.4.1
9 years ago
1.4.0
9 years ago
1.3.7
9 years ago
1.3.6
9 years ago
1.3.5
9 years ago
1.3.4
9 years ago
1.3.3
9 years ago
1.3.2
9 years ago
1.3.1
9 years ago
1.3.0
9 years ago
1.2.13
9 years ago
1.2.12
9 years ago
1.2.11
9 years ago
1.2.10
9 years ago
1.2.9
9 years ago
1.2.8
9 years ago
1.2.7
9 years ago
1.2.5
10 years ago
1.2.4
10 years ago
1.2.3
10 years ago
1.2.2
10 years ago
1.2.1
10 years ago
1.2.0
10 years ago
1.1.2
10 years ago
1.1.1
10 years ago
1.0.0
10 years ago