@staticmethod
def robocopy_args(src, dest, delete=False, exclude_files=None, exclude_dirs
    =None, dry_run=False):
    """Robocopy for sheldon

        Args:
          dest: path to local tdir
          src: path to remote (raid) tdir

        Returns:
          subprocess return code from robocopy

          Robocopy return codes:

          0. No files were copied. No failure was encountered. No files were
          mismatched. The files already exist in the destination directory;
          therefore, the copy operation was skipped.
          1. All files were copied successfully.
          2. There are some additional files in the destination directory that are not
          present in the source directory. No files were copied.
          3. Some files were copied. Additional files were present. No failure
          was encountered.
          5. Some files were copied. Some files were mismatched. No failure was
          encountered.
          6. Additional files and mismatched files exist. No files were copied
          and no failures were encountered. This means that the files already
          exist in the destination directory.
          7. Files were copied, a file mismatch was present, and additional files
          were present.
          8. Several files did not copy.
          :param src:
          :param dest:
          :param delete:
          :param exclude_files:
          :param exclude_dirs:
          :param dry_run:

        """
    if exclude_files is None:
        exclude_files = []
    if exclude_dirs is None:
        exclude_dirs = []
    _args = ['robocopy', src, dest, '/MIR' if delete else '/E', '/mt',
        '/W:1', '/R:1']
    if exclude_dirs:
        _args.extend(['/XD', *exclude_dirs])
    if exclude_files:
        _args.extend(['/XF', *exclude_files])
    if dry_run:
        _args.append('/L')
    return list(filter(None, _args))
