Skip to content

Instantly share code, notes, and snippets.

@goloveychuk
Created April 9, 2025 11:28
Show Gist options
  • Save goloveychuk/ce4707dd9192b4ac5947979aea70b55f to your computer and use it in GitHub Desktop.
Save goloveychuk/ce4707dd9192b4ac5947979aea70b55f to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EXAppExtensionAttributes</key>
<dict>
<key>EXExtensionPointIdentifier</key>
<string>com.apple.fskit.fsmodule</string>
<key>FSActivateOptionSyntax</key>
<dict>
<key>shortOptions</key>
<string>m:d:</string>
<key>pathOptions</key>
<dict>
<key>m</key>
<string>Path</string>
<key>d</key>
<string>Directory</string>
</dict>
</dict>
<key>FSCheckOptionSyntax</key>
<dict>
<key>shortOptions</key>
<string>nqy</string>
</dict>
<key>FSFormatOptionSyntax</key>
<dict>
<key>shortOptions</key>
<string>v</string>
</dict>
<key>FSMediaTypes</key>
<dict/>
<key>FSPersonalities</key>
<dict>
<key>FSKitExpExtensionPersonality</key>
<dict>
<key>FSName</key>
<string>MyFS</string>
<key>FSfileObjectsAreCaseSensitive</key>
<false/>
</dict>
</dict>
<key>FSRequiresSecurityScopedPathURLResources</key>
<false/>
<key>FSShortName</key>
<string>MyFS</string>
<key>FSSupportsBlockResources</key>
<true/>
<key>FSSupportsGenericURLResources</key>
<false/>
<key>FSSupportsPathURLs</key>
<false/>
<key>FSSupportsServerURLs</key>
<false/>
</dict>
</dict>
</plist>
mount -F -t MyFS -o -m=./build.sh,-d=./ /dev/disk5 ./test
import FSKit
import Foundation
import os
final class MyFSVolume: FSVolume {
private let resource: FSResource
var urls: [URL?]?
var mount3: FSTaskOptions? = nil
init(resource: FSResource) {
self.resource = resource
super.init(
volumeID: FSVolume.Identifier(uuid: Constants.volumeIdentifier),
volumeName: FSFileName(string: "Test1")
)
}
}
extension MyFSVolume: FSVolume.Operations {
func activate(options: FSTaskOptions) async throws -> FSItem {
self.p = [
options.url(forOption: "m"),
options.url(forOption: "d"),
]
self.mount3 = options
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment