#permissions #linter #schema-json #name #size #pattern-matching

app fslint

Linter for filesystem consistency: names, metadata, permissions and sizes

4 releases

0.1.4 Aug 26, 2025
0.1.3 Aug 17, 2025
0.1.2 Aug 15, 2025
0.1.1 Aug 2, 2025

#555 in Filesystem

Download history 20/week @ 2025-08-31 3/week @ 2025-09-07 7/week @ 2025-09-28 3/week @ 2025-10-05

196 downloads per month

MIT and GPL-3.0-or-later

86KB
1.5K SLoC

fslint

fslint is a file linter (alpha stage — work in progress) that scans the current directory (or --path) using fslint.json, checking only files matching the include patterns.

rules

See full list of supported linter rules.

installation

$ cargo install fslint

usage

$ fslint --help
Linter for filesystem consistency: names, metadata, permissions and sizes.

Usage: fslint [OPTIONS]

Options:
  -p, --path <PATH>  [default: .]
  -v, --verbose...
  -s, --schema
  -h, --help         Print help
  -V, --version      Print version

config schema

Validate your config against schema.json or generate a local one with:

$ fslint -s > schema.json

To enable schema validation in your editor, add the following to your fslint.json:

"$schema": "https://raw.githubusercontent.com/grubyak/fslint/main/schema.json"

sample config

{
  "$schema": "https://raw.githubusercontent.com/grubyak/fslint/main/schema.json",
  "entries": [
    {
      "include": ["**/*.cr3"],
      "rules": {
        "exif-has-coords": {
          "level": "warn",
          "latitude": true,
          "longitude": true
        },
        "exif-has-capture-datetime": {
          "level": "error",
          "date": true
        }
      }
    },
    {
      // ...
    }
  ]
}

output

$ fslint
/Users/foo/Desktop/not-an-image.cr3
    error exif-has-capture-datetime: exif metadata is missing
    error exif-has-coords: exif metadata is missing

/Users/foo/Desktop/test.cr3
    warn  exif-has-coords: missing latitude

 3 problems (2 errors, 1 warning) -- inspected 2 files, skipped 18031 [130.25ms]

debugging (verbosity)

$ fslint -v    # logs
$ fslint -vv   # more logs
$ fslint -vvv  # max

coffee

If you find this useful, consider buying me a coffee.

buy me a coffee

Dependencies

~15–27MB
~369K SLoC