berlioz
Version:
Berlioz - cloud deployment and migration services
70 lines (63 loc) • 2.05 kB
JavaScript
const RegistryDiagramGenerator = require('../../tools/registry-diagram-generator');
const _ = require('the-lodash');
module.exports = {
useProject: true,
arguments: [
{
name: 'type',
optional: true
},
{
name: 'deployment',
optional: true
},
{
name: 'region',
optional: true
},
{
name: 'provider',
optional: true
},
{
name: 'providerKind',
optional: true
}
],
flags: [
'save',
'compile'
],
exec: function({args, registry, screen, logger, rootDir}) {
return Promise.resolve()
.then(() => {
if (args.compile) {
var policyTarget = {
deployment: args['deployment'],
region: args['region'],
provider: args['provider'],
providerKind: args['providerKind']
}
return Promise.resolve(registry.scopePolicies(policyTarget))
.then(registry => registry.compile(logger, policyTarget))
} else {
return registry;
}
})
.then(registry => {
var generator = new RegistryDiagramGenerator(logger, registry);
var plantuml = generator.generate();
if (args['save']) {
return plantuml.renderToImage(rootDir)
.then(diagramPath => {
screen.info('Diagram saved to: %s', diagramPath);
});
} else {
return plantuml.renderToTempImage(args.type)
.then(diagramPath => {
screen.info('Diagram rendered to: %s. Openning in browser...', diagramPath);
});
}
})
}
}