code: function executeCommand(parameters) {
      if (parameters.environment === undefined) { parameters.environment = plugin.myrmex.getConfig('environment'); }
  
      return plugin.loadTemplates()
      .then(templates => {
        // If the parameter "all" is set, we deploy all templates
        if (!parameters.all) {
          templates = _.filter(templates, template => { return parameters.templateIdentifiers.indexOf(template.getIdentifier()) !== -1; });
        }
  
        icli.print();
        icli.print('Deploying ' + icli.format.info(templates.length) + ' template(s):');
        icli.print('  AWS region: ' + icli.format.info(parameters.region));
        icli.print('  Environement: ' + icli.format.info(parameters.environment || 'no environment specified'));
        icli.print();
        icli.print('This operation may last a little');
  
        return Promise.map(templates, template => {
          const context = {
            environment: parameters.environment
          };
          return template.deploy(parameters.region, context);
        });
      })
      .then(reports => {
        console.log(reports);
      })
      .catch(e => {
        if (e.code === 'AccessDeniedException' && e.cause && e.cause.message) {
          icli.print('\n    ' + icli.format.error('Insufficient permissions to perform the action\n'));
          icli.print('The IAM user/role you are using to perform this action does not have sufficient permissions.\n');
          icli.print(e.cause.message + '\n');
          icli.print('Please update the policies of the user/role before trying again.\n');
          process.exit(1);
        }
        throw e;
      });
    }
docs: Execute the deployment
  @param {Object} parameters - the parameters provided in the command and in the prompt
  @returns {Promise<null>} - The execution stops here