var fs = require('fs'); var path = require('path'); var Promise = require('es6-promise').Promise; // Fetch default badge information. var badgeData = require('./default-badges.json'); var badges = badgeData.badges; var badge = require('./badge.js'); // Construct the image sheet. var imageSheet = 'sheet.html'; var resultSheet = ''; // Where the images will be put. var targetImgDir = 'img'; function makeImage(name, data, cb) { badge(data, function(svg) { var filename = path.join(targetImgDir, name + '.svg'); // Put this image on the sheet. resultSheet += '

'; // Write the image individually. fs.writeFile(filename, svg, cb); }); } // Return a promise to have all images written out individually. function buildImages() { return Promise.all(Object.keys(badges).map(function(name) { //console.log('badge', name); return new Promise(function(resolve) { makeImage(name, badges[name], resolve); }); })); } function main() { // Write the images individually. buildImages() .then(function() { // Write the sheet. //console.log('sheet'); fs.writeFileSync(imageSheet, resultSheet); }) .catch(function(e) { console.error(e.stack); }); } main();