User suggests expanding the unrot tool to allow symlink management across multiple directories simultaneously, enhancing its usability.
Transitioning jobs right now and over the weekend I figured I'd finally start that project that for some reason, has never existed (at least not in a way that's conducive to what I want) when it comes to symlink management tools. `unrot` is a CLI tool that scans a directory tree for broken symlinks, fuzzy-matches candidate replacements using a very trivial Levenshtein distance + path similarity scoring algo (hand-rolled to avoid deps), and lets you interactively relink, remove, or skip each one. In a nutshell, it... - Walks the filesystem with `walkdir`, skips `.git`/`node_modules`/`target` etc. (these can be adjusted via `--ignore`) - Scores candidates by filename edit distance, shared path components, and directory depth - Puts you in an interactive resolver loop; i.e. pick a candidate, enter a custom path, skip, or remove - `--dry-run` to preview without touching anything - `--search-root` to look for candidates outside the scan directory You can install it via: ``` cargo install unrot ``` I got it to where I need it to be. Don't know how useful others might see it but I would hope I'm not alone in thinking a tool like this has been long awaited. Happy to accept contributions or requests to improve it! I think the code is quite nice but happy to see where/if I'm going wrong anywhere. Learning about symlinks and filesystem semantics has unironically been the funnest part about this; I can't believe how little I really knew. [github.com/cachebag/unrot](https://github.com/cachebag/unrot)