UNPKG

mano

Version:

Web application framework

39 lines (35 loc) 1.24 kB
'use strict'; var includes = require('es5-ext/string/#/contains') , readdir = require('fs2/readdir') , readFile = require('fs2/read-file') , resolve = require('path').resolve; require('fs2/lib/ignore-modes').lint = require('xlint/lib/lintignore-mode'); module.exports = function (root/*, options*/) { var processes = [], options = Object(arguments[1]), log = options.log || Function.prototype , preBroken = false, total = 0, broken = 0, result = []; log("Search started "); var promise = readdir(root, { pattern: /\.(?:css|html|index|md|txt)$/, ignoreRules: ['git', 'lint'], depth: Infinity, type: { file: true }, stream: true }); promise.on('change', function (event) { event.added.forEach(function (filename) { ++total; filename = resolve(root, filename); processes.push(readFile(filename)(function (content) { content = String(content); if (!includes.call(content, '\r')) { preBroken = false; log('.'); return; } ++broken; result.push(filename); if (!preBroken) log('\n'); preBroken = true; log("Broken: " + filename + "\n"); })); }); }); return promise(result).aside(function () { log(" Done [" + broken + " of " + total + " got bad eol]\n"); }); };