Jump to content

Code Checks

From Torben's Wickie

pre-commit via prek

https://github.com/j178/prek is a replacement for pre-commit

brew install prek
prek run --all-files
# update hook versions
prek autoupdate
# or 
pnpm dlx @j178/prek@0.4.14 run --all-files

prek.toml (copy in edit mode)

#:schema https://www.schemastore.org/prek.json

exclude = 
(?x)^(
  \.vscode/.*
)$


repos
repo = "builtin"
hooks = [
  { id = "check-added-large-files", args = [
    "--maxkb=500",
  ] },
  { id = "check-case-conflict" },
  { id = "check-executables-have-shebangs" },
  { id = "check-illegal-windows-names" },
  { id = "check-json" },
  { id = "check-json5" },
  { id = "check-merge-conflict" },
  { id = "check-shebang-scripts-are-executable" },
  { id = "check-symlinks" },
  { id = "check-toml" },
  { id = "check-vcs-permalinks" },
  { id = "check-xml" },
  { id = "check-yaml" },
  { id = "destroyed-symlinks" },
  { id = "detect-private-key" },
  { id = "end-of-file-fixer" },
  { id = "file-contents-sorter", files = "^(.gitignore|cspell-words.txt)$", args = [
    "--ignore-case",
  ] },
  { id = "fix-byte-order-marker" },
  { id = "mixed-line-ending", args = [
    "--fix=lf",
  ] },
  { id = "requirements-txt-fixer" },
  { id = "trailing-whitespace" },
]

GitLeaks

repos
repo = "https://github.com/gitleaks/gitleaks"
rev = "v8.30.1"
hooks = [{ id = "gitleaks" }]

Markdown via rumdl

https://github.com/rvben/rumdl

brew install rumdl
rumdl fmt .
rumdl check .
rumdl check . --fix
# or
pnpm dlx rumdl@0.2.55 fmt
pnpm dlx rumdl@0.2.55 check
pnpm dlx rumdl@0.2.55 check --fix

.rumdl.toml

[global]
disable = ["MD013"] # line-length

prek / pre-commit hook

repos
repo = "https://github.com/rvben/rumdl-pre-commit"
rev = "v0.2.57"
hooks = [{ id = "rumdl", args = ["--fix"] }, { id = "rumdl-fmt" }]

YAML via ryl

https://github.com/owenlamont/ryl

# run without config file:
# via uv
uvx ryl@0.21.0 check -d "{extends: default, rules: {line-length: disable, truthy: disable}, ignore: [pnpm-lock.yaml]}" . --fix
# via npm
npx -y @owenlamont/ryl@0.21.0 check -d "{extends: default, rules: {line-length: disable, truthy: disable}, ignore: [pnpm-lock.yaml]}" . --fix
# via pnpm
pnpm dlx @owenlamont/ryl@0.21.0 check -d "{extends: default, rules: {line-length: disable, truthy: disable}, ignore: [pnpm-lock.yaml]}" . --fix


.ryl.toml

ignore = ["pnpm-lock.yaml"]

[rules]
# https://ryl-docs.pages.dev/rules/
anchors = "enable"
braces = "enable"
brackets = "enable"
colons = "enable"
commas = "enable"
document-end = "disable"
empty-lines = "enable"
empty-values = "disable"
float-values = "disable"
hyphens = "enable"
indentation = "enable"
key-duplicates = "enable"
key-ordering = "disable"
line-length = "disable"
new-line-at-end-of-file = "enable"
new-lines = "enable"
octal-values = "disable"
quoted-strings = "disable"
trailing-spaces = "enable"

[rules.comments]
level = "warning"

[rules.comments-indentation]
level = "warning"

[rules.document-start]
level = "warning"

[rules.truthy]
level = "warning"

prek / pre-commit hook

repos
repo = "https://github.com/owenlamont/ryl-pre-commit"
rev = "v0.21.0"
hooks = [{ id = "ryl" }]

TOML via taplo

https://github.com/tamasfe/taplo

pnpm dlx @taplo/cli@0.7.0 fmt *.toml
pnpm dlx @taplo/cli@0.7.0 check *.toml

Shell via shfmt

https://github.com/mvdan/sh#shfmt

brew install shfmt
shfmt -w -i 2 -ci .

prek / pre-commit hook

repos
repo = "https://github.com/scop/pre-commit-shfmt"
rev = "v3.13.1-1"
hooks = [{ id = "shfmt", args = ["-w", "-i", "2", "-ci"] }]