github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/kbfs/simplefs/platform_darwin.go (about) 1 //go:build darwin && !ios 2 // +build darwin,!ios 3 4 package simplefs 5 6 /* 7 #cgo CFLAGS: -x objective-c -fobjc-arc 8 #cgo LDFLAGS: -framework Foundation -framework CoreServices -lobjc 9 10 #include <Foundation/Foundation.h> 11 void quarantineFile(const char* inFilename) { 12 NSError* error = NULL; 13 NSString* filename = [NSString stringWithUTF8String:inFilename]; 14 NSURL* url = [NSURL fileURLWithPath:filename]; 15 NSDictionary* opts = [[NSDictionary alloc] initWithObjectsAndKeys: 16 (id)@"Keybase", (id)kLSQuarantineAgentNameKey, 17 (id)kLSQuarantineTypeOtherDownload, (id)kLSQuarantineTypeKey, 18 nil]; 19 [url setResourceValue:opts forKey:NSURLQuarantinePropertiesKey error:&error]; 20 } 21 */ 22 import "C" 23 import ( 24 "unsafe" 25 26 "golang.org/x/net/context" 27 ) 28 29 // Quarantine is for adding the mark of the web. 30 func Quarantine(ctx context.Context, path string) error { 31 cpath := C.CString(path) 32 defer C.free(unsafe.Pointer(cpath)) 33 C.quarantineFile(cpath) 34 return nil 35 } 36 37 func limitFilenameLengthForWindowsDownloads(filename string) string { 38 return filename 39 }