Skip to content

Latest commit

 

History

History
38 lines (28 loc) · 1.53 KB

find-all-tool-version-files-containing-postgres.md

File metadata and controls

38 lines (28 loc) · 1.53 KB

Find All Tool Version Files Containing Postgres

I've been using asdf for many years now which means I have projects and directories all over my machine with .tool-versions files. Many of them specify Ruby and Node versions. Some of them also include PostgreSQL versions. I used to use asdf to manage Postgres versions, but no longer do that for new or active projects.

I want to find all the places that a .tool-versions file declares postgres as a tool. That way I can begin to clean up the left behind artifacts of asdf-managed Postgres.

By combining fd (a better find) and rg (a better grep), I'm able to quickly track down the list of places.

$ fd --hidden .tool-versions ~/ | xargs rg postgres

/Users/jbranchaud/.local/state/nvim/undo/%Users%jbranchaud%.tool-versions: binary file matches (found "\0" byte around offset 9)

/Users/jbranchaud/code/fake-data/.tool-versions
2:postgres 13.1

/Users/jbranchaud/code/thirty_days/thirty_days_server/.tool-versions
1:postgres 13.1

/Users/jbranchaud/code/visualmode/.tool-versions
1:postgres 11.11

That first instance is a binary file as part of nvim's undo history which I can ignore. The other three are good results.

I tell the fd command to not exclude hidden files as it looks for all occurrences of .tool-versions recursively from my home (~/) directory. I then pipe that list of files to xargs which makes those filenames arguments to the rg postgres command.