code: function command( cmdline, step, silent ) {
        silent = typeof silent === 'boolean'? silent: true;
  
        return function() {
          grunt.verbose.writeln(format('Step=[%s]',step));
  
          var deferred = Q.defer();
          var executed = shelljs.exec(cmdline, {silent: silent});
  
          //console.log(executed);
  
          var code = executed.code;
          if ( code === 0 ) {
            grunt.verbose.writeln(format('End step [%s]-OK',step));
            deferred.resolve(executed.stdout);
          }
          else {
  
            deferred.reject(new Error(format('Error in step [%s]. Error Code:[%s]. Error output:[%s]', step, code, executed.stdout + executed.stderr)));
          }
  
  
          return deferred.promise;
        };
      }
docs: function compare( input, test, message ) { return Q.fcall(function() { var result = (input === test); if ( result ) { return result; } else { throw new Error(message); } }); } 
  Execute a shell cmd
  @param cmdline {string} Command to be executed
  @param step {string} Step name on the task
  @param silent {boolean} [true] If false will output result
  @returns {Function}