appc-cli-expressjs
Version:
create an express server project
56 lines (47 loc) • 1.31 kB
JavaScript
var path = require('path'),
exec = require('child_process').exec;
var TYPE = require('../appc').TYPE,
optsMap = require('../appc').OPTS_MAP;
module.exports = {
type: TYPE,
subtype: 'server',
name: 'Node Express Server',
execute: execute,
provisioned: provisioned
};
function execute(appc, args, opts, callback) {
appc.log.level(opts.logLevel || 'info');
callback();
}
/**
* called when a component has been provisioned
*/
function provisioned (appc, type, opts, config, callback) {
appc.log.trace('express provisioned called',type);
if (!config.acs || config.express_generated) {
return callback();
}
var obj = {};
Object.keys(config.acs.keys).forEach(function(env){
obj[env] = {
key: config.acs.keys[env],
baseurl: config.acs.acsbase[env],
username: config.acs.usernames[env],
password: config.acs.passwords[env]
};
});
config.express_generated = true;
var appDir = config.server._path;
// generate templates
var templateObj = {
ACSConfig: JSON.stringify(obj,null,2)
};
appc.generate.copyTemplates(path.join(__dirname,'..','templates'),appDir,opts.name,opts.id,opts.author,templateObj, function () {
if (opts.workspace) {
var manifest = {};
manifest.server = appDir;
appc.core.writeManifest(opts.workspace, manifest);
}
callback();
});
}