webgme/webgme-cli

View on GitHub
bin/webgme-new-decorator

Summary

Maintainability
Test Coverage
#!/usr/bin/env node

'use strict';
var Command = require('commander').Command,
    DecoratorManager = require('../src/DecoratorManager'),
    program = new Command(),
    nop = require('nop');

program
    .arguments('<decoratorName>')
    .action(function(decoratorName) {
        // FIXME: This is only called if an arg is passed!
        // Otherwise, it fails silently
        var manager = new DecoratorManager();

        program.decoratorName = decoratorName;
        manager.new(program, nop);
    });

// Get the config
var options = DecoratorManager.prototype._getOptions()
    .filter(function(opt) {  // Remove the id
        return opt.name !== '--decorator-name';
    }),
    args,
    regex;

for (var i = options.length; i--;) {
    args = [options[i].name, options[i].desc];
    if (options[i].type !== 'boolean') {
        args[0] += ' <value>';
    }

    if (options[i].items) {
        regex = new RegExp('^(' + options[i].items.join('|') + ')$');
        args.push(regex);
    }
    program.option.apply(program, args);
}

program.parse(process.argv);