lib/ffi/libfuse.rb in ffi-libfuse-0.0.1.rctest12 vs lib/ffi/libfuse.rb in ffi-libfuse-0.1.0.rc20220550
- old
+ new
@@ -3,22 +3,31 @@
require_relative 'libfuse/fuse_version'
require_relative 'libfuse/fuse2' if FFI::Libfuse::FUSE_MAJOR_VERSION == 2
require_relative 'libfuse/fuse3' if FFI::Libfuse::FUSE_MAJOR_VERSION == 3
require_relative 'libfuse/main'
require_relative 'libfuse/adapter'
+require_relative 'libfuse/filesystem'
require_relative 'devt'
module FFI
# Ruby FFI Binding for [libfuse](https://github.com/libfuse/libfuse)
module Libfuse
+ # Filesystems can raise this error to indicate errors from filesystem users
+ class Error < StandardError; end
+
+ # Opinionated default args for {.main}.
+ #
+ # Filesystems that want full control (eg to take advantage of multi-threaded operations) should call
+ # {Main.fuse_main} instead
+ # @note These may change between major versions
+ DEFAULT_ARGS = [$0, '-s', '-odefault_permissions', *ARGV].freeze
+
class << self
# Filesystem entry point
- # @note This main function defaults to single-threaded operation by injecting the '-s' option. Pass `$0,*ARGV`
- # if your filesystem can usefully support multi-threaded operation.
- #
# @see Main.fuse_main
- def fuse_main(*argv, operations:, args: argv.any? ? argv : [$0, '-s', *ARGV], private_data: nil)
+ def fuse_main(*argv, operations:, args: argv.any? ? argv : DEFAULT_ARGS, private_data: nil)
Main.fuse_main(args: args, operations: operations, private_data: private_data) || -1
end
+ alias main fuse_main
end
end
end