mirror of
https://github.com/jsdoc/jsdoc.git
synced 2025-12-08 19:46:11 +00:00
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.
83 lines
2.3 KiB
JavaScript
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);
|
|
|
|
}); |