Note
This is "README-driven development". There is no code yet, just an overview of what I think it should do.
Checks for invalid/deceptive/hacked file names.
Copyright © 2024 by Andrew Marcuse under CC BY-SA 4.0
Attribution requirement: a follow-able link to this repo on Github
- Just Another Hand font from Astigmatic
- https://dwheeler.com/essays/filenames-in-shell.html
- https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file
- https://learn.microsoft.com/en-us/windows/win32/fileio/filesystem-functionality-comparison
- https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_282
- https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-ride
- ls-lint - Go, focused on file name conventions (source)
- eslint-plugin-filenames - JavaScript, focused on file naming conventions, no longer maintained (source)
- batista/lint-filenames - Go, regex rules
- https://richjenks.com/filename-regex/
- https://github.com/sindresorhus/filename-reserved-regex
Also see the to-do list in [rules/README.md]
- rules per extension
- detect duplicates with only lower/upper case differences
- specify params as regex/bytes/utf8 codepoint numbers/ascii/utf8
- overrides: allow/deny list (regex?)
- CI job
- output report format: text/json/???,
- output encoding: how to show bad chars in report
- output: generate script to [delete|purify|???] (or ability to pipe to xargs?)
- support for a
.namelint
file - check attributes (or separate attrlint?)