Sequence the continuations in order.

This commit is contained in:
Thaddee Tyl 2014-01-02 19:42:13 +01:00
parent f0b4e71665
commit 186efb97a5
2 changed files with 16 additions and 9 deletions

22
make.js
View File

@ -1,10 +1,10 @@
var fs = require('fs'); var fs = require('fs');
var Promise = require('es6-promise').Promise;
var dot = require('dot'); var dot = require('dot');
var SVGO = require('svgo'); var SVGO = require('svgo');
var badges = require('./badges.json'); var badges = require('./badges.json');
var template = fs.readFileSync('./template.svg'); var template = fs.readFileSync('./template.svg');
var imageTemplate = dot.template(''+template); var imageTemplate = dot.template(''+template);
//console.log(imageTemplate.toString())
// Construct the image sheet. // Construct the image sheet.
var imageSheet = './sheet.html'; var imageSheet = './sheet.html';
@ -15,7 +15,7 @@ function optimize(string, callback) {
svgo.optimize(string, callback); svgo.optimize(string, callback);
} }
function makeImage(name, data) { function makeImage(name, data, cb) {
var result = imageTemplate(data); var result = imageTemplate(data);
// Run the SVG through SVGO. // Run the SVG through SVGO.
optimize(result, function(object) { optimize(result, function(object) {
@ -24,20 +24,26 @@ function makeImage(name, data) {
resultSheet += result; resultSheet += result;
// Write the image individually. // Write the image individually.
fs.writeFileSync(name + '.svg', result); fs.writeFileSync(name + '.svg', result);
cb();
}); });
} }
// Return a promise to have all images written out individually.
function buildImages() { function buildImages() {
for (var name in badges) { return Promise.all(Object.keys(badges).map(function(name) {
makeImage(name, badges[name]); return new Promise(function(resolve) {
} makeImage(name, badges[name], resolve);
});
}));
} }
function main() { function main() {
// Write the images individually. // Write the images individually.
buildImages(); buildImages()
// Write the sheet. .then(function() {
fs.writeFileSync(imageSheet, resultSheet); // Write the sheet.
fs.writeFileSync(imageSheet, resultSheet);
});
} }
main(); main();

View File

@ -10,6 +10,7 @@
"license": "CC0", "license": "CC0",
"dependencies": { "dependencies": {
"dot": ">=1.0.2", "dot": ">=1.0.2",
"svgo": "~0.4.2" "svgo": "~0.4.2",
"es6-promise": "~0.1.1"
} }
} }