Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

FMT-6: Files that smllm reads

A finding of FMT-6 means that smllm can’t read a machine file that the config or the command line names. The rules page says what the rule checks.

Messages

<file>: error: can't read: no such file (FMT-6)
<file>: error: can't read: <reason> (FMT-6)

Cause

The file doesn’t exist, or smllm can’t read it. A path in the config’s files is relative to the folder of the config, so a path that starts at the project names a file that doesn’t exist. smllm can’t read a path that names a folder, or a file that the user isn’t allowed to read.

Fix

Correct the path in the config’s files, or in the command, so that it names the machine file. Write a path in files from the folder of the config. Where the message names another error, correct the path so that it names a file, or let your user read the file.

Example

This config names a machine file that doesn’t exist, because the machine’s file is fix.smllm.yaml:

.smllm/fix.smllm.yaml

id: fix
initial: TRIAGE
meta:
  smllm: 1
states:
  TRIAGE:
    on:
      reproduced: DONE
  DONE:
    type: final

.smllm/config.toml

[machines]
files = ["fixes.smllm.yaml"]

smllm validate reports the file that it can’t read:

$ smllm validate
.smllm/fixes.smllm.yaml: error: can't read: no such file (FMT-6)
1 error, 0 warnings, 0 info
[exit 1]

The fixed config names the machine’s file:

.smllm/config.toml

[machines]
files = ["fix.smllm.yaml"]

smllm validate reports no finding:

$ smllm validate
0 errors, 0 warnings, 0 info