diff --git a/sitegin/legacy/writeFiles.js b/sitegin/legacy/writeFiles.js deleted file mode 100644 index fe92cc5083ea6dae232592a4d6dbe76268f6caa9..0000000000000000000000000000000000000000 --- a/sitegin/legacy/writeFiles.js +++ /dev/null @@ -1,21 +0,0 @@ - -var fs = require('fs'); -var path = require('path'); -var mkdirp = require('mkdirp'); -var builddir = "build"; -if(process.argv[2] !== "compileonly") builddir = "build-debug"; - -module.exports = function() { - var out = this; - out.fancyname = "output filesystem"; - out.forEachPage = function(article, cb) { - mkdirp(path.dirname(builddir+'/'+article.file+"/index.html"), () => { - var file = builddir+'/'+article.file+"/index.html"; - fs.writeFile(file, article.content, function(err){ - if(err) throw err; - cb(); - }); - }); - } -} - diff --git a/sitegin/pipeline.js b/sitegin/pipeline.js index 2c2efaef6c9cbbd5c4566e7160c5e6724c5f0044..b1efcffafd1fcfd56be63e744b0dbd2f02f5f1df 100644 --- a/sitegin/pipeline.js +++ b/sitegin/pipeline.js @@ -11,6 +11,7 @@ module.exports = function(jobs) { 'markdown', 'tags', 'theme', + 'writeFiles', 'print' ); } diff --git a/sitegin/sitegin.js b/sitegin/sitegin.js index ac5d3df63f3377a5daf20da0ebee6ad883c18ac1..bf5a0e514bcf9c56f52bcfeeea8be0afff60a9b4 100644 --- a/sitegin/sitegin.js +++ b/sitegin/sitegin.js @@ -13,6 +13,7 @@ module.exports = function(config) { ['tags', './tags'], ['nunjucks', './nunjucks'], ['theme', './theme'], + ['writeFiles', './writeFiles'], ['pipeline','./pipeline'] ) diff --git a/sitegin/writeFiles.js b/sitegin/writeFiles.js new file mode 100644 index 0000000000000000000000000000000000000000..04a17fd0a6e11e9989250e7f189c0e7e3e9e3d01 --- /dev/null +++ b/sitegin/writeFiles.js @@ -0,0 +1,26 @@ + +var fs = require('fs'); +var path = require('path'); +var mkdirp = require('mkdirp'); + +module.exports = function(obj) { + return new Promise(function(resolve,reject) { + var builddir = obj.config.builddir; + var todo = 0; + + var writeFile = function(article) { + var filename = path.join(builddir,article.file,"index.html"); + mkdirp(path.dirname(filename), function() { + fs.writeFile(filename, article.content, function(err) { + if(err) reject(err); + todo--; + if(todo <= 0) resolve(obj); + }); + }); + } + obj.pages.forEach(function(o) { writeFile(o); }) + obj.redirects.forEach(function(o) { writeFile(o); }) + obj.tags.forEach(function(o) { writeFile(o); }) + if(todo <= 0) resolve(obj); + }) +}