aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 672065618b276a30d4bfce7814df13f482eae00e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 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](https://git-annex.branchable.com/) – 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.)

[FUSE]: https://github.com/libfuse/libfuse

## License

Scoville is licensed under the [Apache License, version 2.0][Apache-2].

[Apache-2]: https://www.apache.org/licenses/LICENSE-2.0