function promisedRSync(src, dest) {
  gutil.log(' ', chalk.blue('rsync'), src, '->', dest);
  return new Promise(function(resolve, reject) {
    if (fs.existsSync(src) === false) {
      gutil.log(' ', chalk.red(src), 'doesn\'t exist.');
      resolve();
    }
    const rsync = new RSync()
      .source(src)
      .destination(dest)
      .archive()
      .exclude('.git*')
      .exclude('.DS_Store');
    mkdirp.sync(dest);
    rsync.execute(function(error, code, cmd) {
      if (code !== 0) {
        gutil.log(' ', 'Copying', chalk.blue(src), chalk.red('Failed!'));
        // eslint-disable-next-line no-console
        console.log(error);
        reject(error);
        return;
      }
      resolve();
    });
  });
}
Uses RSync to copy files from one directory to another.

@param {string} src The source to copy.
@param {string} dest The destination to copy to.
@return {Promise} The promise that will be resolved on completion.