aboutsummaryrefslogtreecommitdiff

Scoville: The escaping overlay file system

Scoville is a FUSE overlay file system which works around the limited character set allowed in FAT file names. FAT does not permit non-printable characters in file names, nor does it allow the characters ‘*’, ‘?’, ‘<’, ‘>’, ‘|’, ‘"’, ‘:’, or ‘\’. Many applications support applying a file name translation map when placing files on FAT-formatted volumes; however, some – notably git-annex – do not. For those applications, Scoville may be the only way to work around some very unpleasant ad-hoc schemes.

Usage is trivial: Run Scoville on an existing mounted file system. For example, if you have a FAT-formatted SD card mounted on /media/sd, you can run scoville /media/sd. When you’re done, unmount it with fusermount -u. While mounted, Scoville will translate all forbidden characters to their URL-escaped versions. For example, a file called ‘What Else Is There?.flac’ will be stored on disk as ‘What Else Is There%3f.flac’.

Beyond escaping, Scoville is exactly as capable as the file system it overlays. If you want long file names, use vfat; if you want POSIX permissions, use umsdos. (On the other hand, if you use umsdos, you don’t need to use Scoville, since umsdos provides Scoville’s special character handling, albeit using a different scheme.)

License

Scoville is licensed under the Apache License, version 2.0.