1.4.1 • Published 9 years ago

nano-sched v1.4.1

Weekly downloads
2
License
MIT
Repository
github
Last release
9 years ago

Gitter NPM version Build status Test coverage Dependency Status License Downloads

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