code: function exec(commands, callback, options = {}) {
    if (typeof commands === 'string') {
      commands = [commands]
    }
    let remaining = commands.length
    if (remaining === 0) {
      callback()
    }
    else {
      let error_count = 0
      commands.forEach(command => {
        jake.logger.log('STARTING: ' + command)
        child_process.exec(command, function (error, stdout, stderr) {
          jake.logger.log((error === null ? 'FINISHED: ' : 'FAILED: ') + command)
          if (!jake.program.opts.quiet) {
            jake.logger.log(stdout)
          }
          if (error !== null) {
            if (options.executeAll) {
              error_count++
            }
            else {
              fail(error, error.code)
            }
          }
          remaining--
          if (remaining === 0) {
            if (error_count > 0) {
              fail(error_count + ' errors(s)')
            }
            else {
              callback()
            }
          }
        })
      })
    }
  }
docs: /* Utility functions. /*
  Execute shell commands in parallel then run the `callback` when they have all finished.
  Abort immediately an error occurs unless options.executeAll is true (in which case run all commands
  commands and abort if one or more failed).
  Write command output to the inherited stdout (unless the Jake --quiet option is set).
  Print a status message when each command starts and finishes (unless the Jake --quiet option is set).
  
  NOTE: This function is similar to the built-in jake.exec function but is twice as fast.