aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmd/sharefs/fuse.go
AgeCommit message (Collapse)Author
2025-12-27cmd/sharefs: prepare directory earlyOphestra
This change also checks against filesystem daemon running as root early. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27cmd/sharefs: create directory as rootOphestra
This optional behaviour is required on NixOS as it is otherwise impossible to set this up: systemd.mounts breaks startup order somehow even though my unit looks identical to generated ones, fileSystems does not support any kind of initialisation or ordering other than against other mount points. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27cmd/sharefs: handle mount -t fuse.sharefsOphestra
This should have been handled in a custom option parsing function, but that much extra complexity is unnecessary for this edge case. Honestly I do not know why libfuse does not handle this itself. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27cmd/sharefs: check option parsing behaviourOphestra
This change makes it possible to check parseOpts behaviour as part of Go tests. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27cmd/sharefs: containerise filesystem daemonOphestra
This replaces the forking daemonise libfuse function which prevents Go callbacks from calling into the runtime. This also enforces least privilege on the daemon process. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27cmd/sharefs: opaque setup stateOphestra
This allows unrestricted use of the type system and prepares setup code for cross-process initialisation. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27cmd/sharefs: expand fuse_mainOphestra
This change should not change behaviour other than making output more consistent. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-27cmd/sharefs: improve help messageOphestra
This improves consistency with the fuse_main help message. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-26cmd/sharefs: allocate sharefs_private earlyOphestra
This also removes global state used by sharefs_init. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-26cmd/sharefs: rename fuse-helper to fuse-operationsOphestra
This is not really just library wrapper functions, but instead implements the callbacks, so fuse-operations makes more sense. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-25cmd/sharefs: remove readlinkOphestra
This filesystem does not support symbolic links, so readlink is not useful, and unreachable in this case because of the check in getattr. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-12-25cmd/sharefs: implement shared filesystemOphestra
This is for passing files between applications, similar to android /sdcard. Signed-off-by: Ophestra <cat@gensokyo.uk>