7 releases

0.3.2 May 14, 2023
0.3.1 May 14, 2023
0.2.0 May 1, 2023
0.1.2 May 1, 2023

#6 in #broken-links

MIT license

7KB
102 lines

Check Symlinks

Check for broken symbolic links.

check-symlinks is optmized for large codebases as well as small, incremental checks,

Shows a bar chart with benchmark results.

where the full commands are respectively,

fd --type symlink --exec sh -c 'test -e "$0"'

check-symlinks

git ls-files | xargs pre_commit_hooks/check_symlinks.py

while read file; do test -e "$test"; done < <(git ls-files)

find . -type l -not -path data ! -exec test -e {} \; -print0 | xargs --no-run-if-empty git ls-files

and check_symlinks.py is from https://github.com/pre-commit/pre-commit-hooks.

Install

cargo install check-symlinks

Usage

By default, checks all unignored files recursively from the current working directory,

$ check-symlinks
"./broken_link" is not a valid symlink

File paths can also be passed,

$ check-symlinks broken_link doesnt_exist
"./broken_link" is not a valid symlink

NOTE: file arguments which don't exist are ignored.

Dependencies

~4–12MB
~130K SLoC