autodocs
Version:
Automates publishing documentation, for use continuous integration and continuous deployment
46 lines (40 loc) • 1.46 kB
JavaScript
/*@flow*/
;
const fs = require('fs');
const path = require('path');
const executeCommand = require('./execute-command.js');
const commitAndPush = require('./commit-and-push.js');
module.exports = createLatestAlias;
function createLatestAlias(context/*: Object*/) {
return new Promise((resolve, reject) => {
console.log('createLatestAlias... start');
if (context.vars.FLAG_LATEST_PAGE === 'false') {
console.log('Not creating a latest page');
context.vars.LATEST_ASSETS = '';
return resolve(true);
}
else {
console.log('Create latest alias');
var inHtml = fs.readFileSync(
path.resolve(context.vars.SCRIPT_DIR, 'latest.html'));
var latestTemplate = require('hogan.js').compile(inHtml.toString());
var outHtml = latestTemplate.render({
name: context.vars.PROJECT_NAME,
redirectUrl: '../'+context.vars.DOCUMENT_PUBLISH_SUBFOLDER+'/',
});
try {
fs.mkdirSync(path.resolve(context.repoDir, context.vars.LATEST_DIR));
} catch (ex) {
// Do nothing - we don't care if the directory already exists
}
fs.writeFileSync(path.resolve(
context.repoDir, context.vars.LATEST_DIR, 'index.html'), outHtml);
context.vars.LATEST_ASSETS = context.vars.LATEST_DIR;
return resolve(true);
}
})
.then((result) => {
console.log('createLatestAlias... finish');
return (commitAndPush(context));
});
}