mirror of
				https://github.com/rclone/rclone.git
				synced 2025-10-30 23:17:59 +02:00 
			
		
		
		
	crypt: implement DirChangeNotify
crypt now implements the DirChangeNotify if the wrapped FS provides it.
This commit is contained in:
		
				
					committed by
					
						 Nick Craig-Wood
						Nick Craig-Wood
					
				
			
			
				
	
			
			
			
						parent
						
							5acb6f47e7
						
					
				
				
					commit
					ce5b3a531d
				
			| @@ -7,6 +7,7 @@ import ( | ||||
| 	"path" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/ncw/rclone/fs" | ||||
| 	"github.com/pkg/errors" | ||||
| @@ -129,6 +130,22 @@ func NewFs(name, rpath string) (fs.Fs, error) { | ||||
| 		BucketBased:             true, | ||||
| 		CanHaveEmptyDirectories: true, | ||||
| 	}).Fill(f).Mask(wrappedFs) | ||||
|  | ||||
| 	doDirChangeNotify := wrappedFs.Features().DirChangeNotify | ||||
| 	if doDirChangeNotify != nil { | ||||
| 		f.features.DirChangeNotify = func(notifyFunc func(string), pollInterval time.Duration) chan bool { | ||||
| 			wrappedNotifyFunc := func(path string) { | ||||
| 				decrypted, err := f.DecryptFileName(path) | ||||
| 				if err != nil { | ||||
| 					fs.Logf(f, "DirChangeNotify was unable to decrypt %q: %s", path, err) | ||||
| 					return | ||||
| 				} | ||||
| 				notifyFunc(decrypted) | ||||
| 			} | ||||
| 			return doDirChangeNotify(wrappedNotifyFunc, pollInterval) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return f, err | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user