Skip to content

Commit

Permalink
Add new tasks to run the editServer, previewServer, and make a .zip o…
Browse files Browse the repository at this point in the history
…f the rendered site
  • Loading branch information
robogeek committed Mar 6, 2015
1 parent 2266865 commit 699f612
Show file tree
Hide file tree
Showing 6 changed files with 73 additions and 3 deletions.
37 changes: 36 additions & 1 deletion index.js
Expand Up @@ -31,6 +31,7 @@ var oembed = require('oembed');
var fs = require('fs-extra');
var globfs = require('globfs');
var path = require('path');
var archiver = require('archiver');
var fileCache = require('./lib/fileCache');
var smap = require('sightmap');
var RSS = require('rss');
Expand Down Expand Up @@ -513,7 +514,7 @@ var process2html = function(config, entry, done) {
// TBD - the callback needs to send a new rendering
if (err) done('Rendering file-rendered '+ entry.path +' failed with '+ err);
else {
logger.info('rendered '+ entry.path +' as '+ renderTo);
// logger.info('rendered '+ entry.path +' as '+ renderTo);
fs.mkdirs(path.dirname(renderTo), function(err) {
if (err) done('FAILED to make directory '+ path.dirname(renderTo) +' failed with '+ err);
else fs.writeFile(renderTo, rendered.content, 'utf8', function (err) {
Expand Down Expand Up @@ -562,6 +563,30 @@ var writeRenderingToFile = function(config, renderedFileName, rendered, entry, d
});
}


module.exports.zipRenderedSite = function(config, done) {

var archive = archiver('zip');

var output = fs.createWriteStream(config.root_out +'.zip');

output.on('close', function() {
logger.info(archive.pointer() + ' total bytes');
logger.info('archiver has been finalized and the output file descriptor has closed.');
done();
});

archive.on('error', function(err) {
done(err);
});

archive.pipe(output);

archive.directory(config.root_out, ".");

archive.finalize();
};

module.exports.oEmbedData = function(url, callback) {
oembed.fetch(url, { maxwidth: 6000 }, callback);
};
Expand Down Expand Up @@ -699,6 +724,16 @@ module.exports.runPreviewServer = function(config) {
server.listen(6080);
};

module.exports.runEditServer = function(config) {
module.exports.gatherDir(config, config.root_docs, function(err, data) {
if (err) {
util.log('ERROR '+ err);
} else {
require(path.join(__dirname, 'server', 'app'))(module.exports, config);
}
});
};

///////////////// Deployment of Sites

module.exports.deployViaRsync = function(config) {
Expand Down
3 changes: 2 additions & 1 deletion lib/fileCache.js
Expand Up @@ -86,7 +86,7 @@ module.exports.readDocument = function(config, docName, done) {
renderer.render = rendererNull.render;
}
try {
docCache[docName] = {
var e = {
type: "document",
// The root_docs directory containing the file
rootdir: docEntry.rootdir,
Expand All @@ -102,6 +102,7 @@ module.exports.readDocument = function(config, docName, done) {
frontmatter: extractFrontmatter(text),
data: text
};
docCache[docName] = e;
// logger.trace('readDocument returning newly read '+ docName);
done(undefined, docCache[docName]);
} catch (e) {
Expand Down
3 changes: 2 additions & 1 deletion package.json
Expand Up @@ -62,7 +62,8 @@
"ssh2sync": "*",
"rss": "*",
"sseasy": "*",
"yfm": "*"
"yfm": "*",
"archiver": "*"
},
"devDependencies": {
"vows": ">=0.8.1"
Expand Down
11 changes: 11 additions & 0 deletions tasks/editServer.js
@@ -0,0 +1,11 @@

module.exports = function(grunt) {
grunt.registerTask('editServer', function() {
var done = this.async();
grunt.config.requires('akasha');
grunt.config.requires('config');
var akasha = grunt.config('akasha');
var config = grunt.config('config');
akasha.runEditServer(config, done);
});
};
11 changes: 11 additions & 0 deletions tasks/previewServer.js
@@ -0,0 +1,11 @@

module.exports = function(grunt) {
grunt.registerTask('previewServer', function() {
var done = this.async();
grunt.config.requires('akasha');
grunt.config.requires('config');
var akasha = grunt.config('akasha');
var config = grunt.config('config');
akasha.runPreviewServer(config, done);
});
};
11 changes: 11 additions & 0 deletions tasks/zipRenderedSite.js
@@ -0,0 +1,11 @@

module.exports = function(grunt) {
grunt.registerTask('zipRenderedSite', function() {
var done = this.async();
grunt.config.requires('akasha');
grunt.config.requires('config');
var akasha = grunt.config('akasha');
var config = grunt.config('config');
akasha.zipRenderedSite(config, done);
});
};

0 comments on commit 699f612

Please sign in to comment.