Tuesday, September 03, 2024

Re: clang-format symlink

> On 03/09/2024 10:38 +02 Страхиња Радић <sr@strahinja.org> wrote:
>
>
> Дана 24/09/03 12:47PM, meisner43@mailbox.org написа:
> > I need to use 'clang-format' program to format some code and I found
> > a package which contains it (llvm-17.0.6p5). However, after
> > installation, the program executable is named 'clang-format-17'
> > instead of 'clang-format'. [...]
>
> Personally, I wrote this script[1] helper:
>
> #!/bin/sh
> exec /usr/bin/env PATH=/usr/local/bin:/usr/bin:/bin \
> "$( ( commands=$(find /usr/bin /usr/local/bin \
> -name "${0##*/}"'-[0-9][0-9]' -print)
> [ -n "$commands" ] ||
> commands=$(printf "%s" "${0##*/}")
> printf "%s\n" "$commands"
> ) | sort -Vr | sed 1q )" $(printf "%s" "$*" |
> tr -d '\\\n`;$()')
>
> the way it works is that I have a ~/bin directory added to my path, and
> inside of it I symlink this script to ~/bin/clang-format,
> ~/bin/scan-build, ~/bin/scan-view etc. The script uses zeroth argument
> to determine which program to run. The "version" (the part after "-" in
> the regular program name, eg. "17" for clang-format-17) will be the
> largest version according to version sort (`sort -V`).
>
>
> [1]: https://git.sr.ht/~strahinja/dotfiles/tree/master/item/bin/llvm-find

This is helpful, thank you for your script.

Regards,
meisner43

No comments:

Post a Comment