EROMFS Module¶
Since | Origin / Contributor | Maintainer | Source |
---|---|---|---|
2021-11-13 | Johny Mattsson | Johny Mattsson | heaptrace.c |
EROMFS (Embedded Read-Only Mountable File Sets) provides a convenient mechanism for bundling file sets into the firmware image itself. The main use cases envisaged for this is static web site content and default "skeleton" files that may be used to populate SPIFFS on first boot.
When enabling the eromfs
module one or more file sets ("volumes") must be
declared. Each such volume is identified by name, and may be mounted anywhere
supported by the Virtual File System. Once mounted, the included
files are available on a read-only basis to any thread wanting to access them.
Note that EROMFS does not support directories per se, but will store the directory path as part of the filename just as SPIFFS does. As such it is only possible to list the root of the volume, not subdirectories (since they don't exist).
eromfs.list¶
Returns a list of the bundled file sets (volumes).
Syntax¶
eromfs.list()
Parameters¶
None.
Returns¶
An array with the names of the bundled volumes.
Example¶
for _, volname in ipairs(eromfs.list()) do print(volname) end
eromfs.mount¶
Mounts a volume at a specified point in the virtual file system.
Note that it is technically possible to mount a volume multiple times on different mount points. The benefit of doing so however is questionable.
Syntax¶
eromfs.mount(volname, mountpt)
Parameters¶
volname
the name of the volume to mount, e.g.myvol
.mountpt
where to mount said volume. Must start with '/', e.g./myvol
.
Returns¶
nil
on success. Raises an error if the named volume cannot be found, or
cannot be mounted.
Example¶
-- Assumes the volume named "myvol" exists
eromfs.mount('myvol', '/somewhere')
for name,size in pairs(file.list('/somewhere')) do print(name, size) end
eromfs.unmount¶
Unmounts the specified EROMFS volume from the given mount point.
Syntax¶
eromfs.unmount(volname, mountpt)
Parameters¶
volname
the name of the volume to mount.mountpt
the current mount point of the volume.
Returns¶
nil
if:
- the volume was successfully unmounted; or
- the volume was not currently mounted at the given mount point
Raises an error if: - the unmounting fails for some reason; or - a different EROMFS volume is mounted on the given mount point
Example¶
eromfs.unmount('myvol', '/somewhere')