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