file_ends_with
Byte-level prefix / suffix check. Works on any bytes (binary safe, unlike file_header).
Check-only: a fix would risk silently duplicating a near-matching prefix. Pair with file_prepend / file_append explicitly if you want auto-repair.
Options
Section titled “Options”| Option | Type | Required | Default | Description |
|---|---|---|---|---|
suffix | string | yes | Required suffix, matched byte-for-byte. |
Plus the common paths, level, id, and when fields. This table is generated from the JSON Schema; option types and defaults are authoritative.
Example
Section titled “Example”Generated files missing their sentinel line
Section titled “Generated files missing their sentinel line”The rule fires on this repository:
build/build/ok.generated.mdbuild/stripped.generated.mdbuild/wrong_tail.generated.md# hi
<!-- generated by alint --># hi# hi
<!-- generated by somebody else -->With this .alint.yml:
version: 1rules: - id: gen-sentinel kind: file_ends_with paths: "build/**/*.generated.md" suffix: "<!-- generated by alint -->\n" level: erroralint check reports:
--- build/stripped.generated.md ------------------------------------------------ x error gen-sentinel file does not end with the required suffix
--- build/wrong_tail.generated.md ---------------------------------------------- x error gen-sentinel file does not end with the required suffix
Summary (2 violations): x 2 errors 0 passing * 1 failingEvery generated file ends with the sentinel
Section titled “Every generated file ends with the sentinel”This repository is compliant:
build/build/a.generated.mdbuild/b.generated.md# hi
<!-- generated by alint --># world
<!-- generated by alint -->With this .alint.yml:
version: 1rules: - id: gen-sentinel kind: file_ends_with paths: "build/**/*.generated.md" suffix: "<!-- generated by alint -->\n" level: erroralint check reports:
v All 1 rule(s) passed.