82 lines
2.3 KiB
JavaScript
82 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');
|
||
|
|
||
|
// 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.2.0-dev',
|
||
|
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);
|
||
|
|
||
|
});
|