From f46cea9642f82d6a5a2701e8817bdc4d0da61ab6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Sko=C5=99epa?= <jakub@skorepa.info> Date: Tue, 8 Mar 2016 01:34:05 +0100 Subject: [PATCH] Convert writeFiles job --- sitegin/legacy/writeFiles.js | 21 --------------------- sitegin/pipeline.js | 1 + sitegin/sitegin.js | 1 + sitegin/writeFiles.js | 26 ++++++++++++++++++++++++++ 4 files changed, 28 insertions(+), 21 deletions(-) delete mode 100644 sitegin/legacy/writeFiles.js create mode 100644 sitegin/writeFiles.js diff --git a/sitegin/legacy/writeFiles.js b/sitegin/legacy/writeFiles.js deleted file mode 100644 index fe92cc50..00000000 --- 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 2c2efaef..b1efcffa 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 ac5d3df6..bf5a0e51 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 00000000..04a17fd0 --- /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); + }) +} -- GitLab