jsdoc/Jakefile.js
Matthew Kastor f6c281a810 Update Jake Install, fs.existsSync
jake install[something/somewhere]

1) would give a warning that `path.existsSync` has been changed to
`fs.existsSync`. This has been updated.

2) would throw an error if there was no templates folder in the
extension being installed. Changed the condition on line 75 to check for
the existence of the correct item.
2012-10-19 21:39:26 -04:00

83 lines
2.3 KiB
JavaScript

/*global desc: true, fail: true, Mustache: true, task: true */
// see: https://github.com/mde/jake
desc('Updating package.json revision.');
task('default', [], function(params) {
/*jshint evil: true */
var fs = require('fs'),
sys = require('sys');
// import the Mustache template tool
eval(fs.readFileSync('Jake/lib/mustache.js', 'utf8'));
var templates = {
packagejson : fs.readFileSync('Jake/templates/package.json.tmpl', 'utf8')
};
var metadata = {
appname : 'jsdoc',
appversion : '3.0.0',
timestamp : '' + new Date().getTime()
};
var outdir = './';
var rendered = Mustache.to_html(templates.packagejson, metadata);
fs.writeFileSync(outdir + 'package.json', rendered, 'utf8');
process.exit(0);
});
desc('Installs a plugin/template.');
task('install', [], function(loc) {
var fs = require('fs'),
util = require('util'),
path = require('path'),
wrench = require('wrench');
if(!loc) {
fail("You must specify the location of the plugin/template.");
}
if(!fs.existsSync(loc)) {
fail("plugin/template location [" + loc + "] is not valid.");
}
var pluginLoc = path.join(loc, "plugins"),
templateLoc = path.join(loc, "templates"),
jsdocLoc = process.cwd(),
name,
config;
//First the plugin
if(fs.existsSync(pluginLoc)) {
//copy it over
wrench.copyDirSyncRecursive(pluginLoc, path.join(jsdocLoc, "plugins"), {
preserve : true
});
//find out what it's called
name = fs.readdirSync(pluginLoc)[0].replace(".js", "");
//And finally edit the conf.json
try {
config = JSON.parse(fs.readFileSync(path.join(jsdocLoc, 'conf.json'), 'utf8'));
if(config.plugins.indexOf('plugins/' + name) == -1) {
config.plugins.push('plugins/' + name);
fs.writeFileSync(path.join(jsdocLoc, 'conf.json'), JSON.stringify(config, null, " "), 'utf8');
}
} catch (e) {
fail("Could not edit the conf.json file: " + e);
}
}
//Then the template
if(fs.existsSync(templateLoc)) {
wrench.copyDirSyncRecursive(templateLoc, path.join(jsdocLoc, "templates"), {
preserve : true
});
}
process.exit(0);
});