From 825230f90914a9183a2e0f2176e517b38864c791 Mon Sep 17 00:00:00 2001 From: "stuart.welham@gmail.com" Date: Fri, 21 Feb 2014 17:19:57 +0000 Subject: [PATCH] added load stylesheets by directory feature - fixes #4 --- package.json | 3 ++- parker.js | 41 +++++++++++++++++++++++++++++------------ 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 50918c6..1f6e6d7 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "underscore": "*", "backbone": "*", "cli-color": "*", - "minimist": "0.0.7" + "minimist": "0.0.7", + "async": "~0.2.10" }, "scripts": { "test": "mocha --no-colors --reporter spec" diff --git a/parker.js b/parker.js index db9a47f..b4d8ea9 100755 --- a/parker.js +++ b/parker.js @@ -13,7 +13,9 @@ var _ = require('underscore'), metrics = require('./metrics/All.js'), clc = require('cli-color'), argv = require('minimist')(process.argv.slice(2)), - fs = require('fs'); + fs = require('fs'), + async = require('async'), + path = require('path'); console.log(clc.red('PA') + clc.yellow('RK') + clc.green('ER') + '-JS'); @@ -21,22 +23,37 @@ var parker = new Parker(metrics); if (argv._.length > 0) { var stylesheets = []; - _.each(argv._, function (filename) { + + async.each(argv._, function (filename, done) { var onComplete = function (err, data) { stylesheets.push(data); - if (stylesheets.length === argv._.length) { - onAllComplete(); - } }; - var onAllComplete = function () { - var results = parker.run(stylesheets); - _.each(metrics, function(metric) { - console.log(metric.name + ': ' + results[metric.id]); - }); - }; + if (filename.indexOf('.css') === -1) { + fs.readdir(filename, function (err, files) { + async.each(files, function (file, fileDone) { + if (file.indexOf('.css') === -1) { + return fileDone(); + } - fs.readFile(filename, {encoding: 'utf8'}, onComplete); + fs.readFile(path.join(filename, file), {encoding: 'utf8'}, function (err, fileData) { + onComplete(err, fileData); + fileDone(); + }); + }, done); + }); + } + else { + fs.readFile(filename, {encoding: 'utf8'}, function (err, fileData) { + onComplete(err, fileData); + done(); + }); + } + }, function (err) { + var results = parker.run(stylesheets); + _.each(metrics, function(metric) { + console.log(metric.name + ': ' + results[metric.id]); + }); }); } else {