package storage import ( "context" "os/exec" "github.com/darroyo/nasctl/internal/db" "github.com/darroyo/nasctl/internal/system" ) type Capabilities struct { Rsync bool `json:"rsync"` MergerfsBin bool `json:"mergerfs"` MergerfsMounted bool `json:"mergerfs_mounted"` SnapraidBin bool `json:"snapraid"` } func Probe(ctx context.Context) (Capabilities, error) { _, rsyncErr := exec.LookPath("rsync") _, snapraidErr := exec.LookPath("snapraid") _, mergerfsErr := exec.LookPath("mergerfs") _, _, mergerfsMountedErr := system.Run(ctx, "grep", "-q", "fuse.mergerfs", "/proc/mounts") return Capabilities{ Rsync: rsyncErr == nil, MergerfsBin: mergerfsErr == nil, MergerfsMounted: mergerfsMountedErr == nil, SnapraidBin: snapraidErr == nil, }, nil } func ValidatePaths(cfg db.StorageConfig) error { return nil }