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')