Skip to content

dir_contains

Every directory matching select: must contain files matching every glob in require:. Sugar for a common for_each_dir shape.

OptionTypeRequiredDefaultDescription
requireRequireListyesBasename glob(s): every dir matching select must have at least one child matching each.
selectstringyesGlob selecting the directories to check.

Plus the common level, id, and when fields. This rule analyses the whole repository, so it takes no paths. This table is generated from the JSON Schema; option types and defaults are authoritative.

A package directory missing its README or license

Section titled “A package directory missing its README or license”

The rule fires on this repository:

packages/
packages/alpha/
packages/alpha/LICENSE
packages/alpha/README.md
packages/beta/
packages/beta/README.md
packages/gamma/
packages/gamma/LICENSE
packages/alpha/LICENSE
MIT
packages/alpha/README.md
# alpha
packages/beta/README.md
# beta
packages/gamma/LICENSE
MIT

With this .alint.yml:

version: 1
rules:
- id: packages-have-readme-and-license
kind: dir_contains
select: "packages/*"
require: ["README.md", "LICENSE*"]
level: error

alint check reports:

Terminal window
--- packages/beta --------------------------------------------------------------
x error packages-have-readme-and-license
packages/beta is missing a child matching "LICENSE*"
--- packages/gamma -------------------------------------------------------------
x error packages-have-readme-and-license
packages/gamma is missing a child matching "README.md"
Summary (2 violations):
x 2 errors
0 passing * 1 failing

Every package directory has a README and a license

Section titled “Every package directory has a README and a license”

This repository is compliant:

packages/
packages/alpha/
packages/alpha/LICENSE
packages/alpha/README.md
packages/beta/
packages/beta/LICENSE-APACHE
packages/beta/README.md
packages/alpha/LICENSE
MIT
packages/alpha/README.md
# alpha
packages/beta/LICENSE-APACHE
Apache-2.0 text
packages/beta/README.md
# beta

With this .alint.yml:

version: 1
rules:
- id: packages-have-readme-and-license
kind: dir_contains
select: "packages/*"
require: ["README.md", "LICENSE*"]
level: error

alint check reports:

Terminal window
v All 1 rule(s) passed.