+ def xattrs(self):
+ """Preserve extended attributes"""
+ self._options.append('-X')
+ return self
+
+ def hard_links(self):
+ """Preserve hard links"""
+ self._options.append('-H')
+ return self
+
+ def acls(self):
+ """Preserve ACLs"""
+ self._options.append('-A')
+ return self
+
+ def sparse(self):
+ """Handle sparse files efficiently"""
+ self._options.append('-S')
+ return self
+
+ def exclude(self, pattern):
+ """Add an exclude pattern"""
+ self._exclude.append(pattern)
+ return self
+
+ def reset(self):
+ """Reset all rsync options"""
+ self._exclude = []
+ self._options = ['-v']
+
+ def run(self, src, dest):