On Fri, Mar 8, 2024 at 6:58 PM Bharath Rupireddy < bharath.rupireddyforpostg...@gmail.com> wrote:
> On Thu, Mar 7, 2024 at 12:39 PM Richard Guo <guofengli...@gmail.com> > wrote: > > > > While rebasing one of my patches I noticed that the header file includes > > in relnode.c are not sorted in order. So I wrote a naive script to see > > if any other C files have the same issue. The script is: > > > > #!/bin/bash > > > > find . -name "*.c" | while read -r file; do > > headers=$(grep -o '#include "[^>]*"' "$file" | > > grep -v "postgres.h" | grep -v "postgres_fe.h" | > > sed 's/\.h"//g') > > > > sorted_headers=$(echo "$headers" | sort) > > > > results=$(diff <(echo "$headers") <(echo "$sorted_headers")) > > > > if [[ $? != 0 ]]; then > > echo "Headers in '$file' are out of order" > > echo $results > > echo > > fi > > done > > Cool. Isn't it a better idea to improve this script to auto-order the > header files and land it under src/tools/pginclude/headerssort? It can > then be reusable and be another code beautification weapon one can use > before the code release. Yeah, perhaps. However the current script is quite unrefined and would require a lot of effort to make it a reusable tool. I will add it to my to-do list and hopefully one day I can get back to it. Feel free to mess around with it if someone is interested. > FWIW, I'm getting the syntax error when ran the above shell script: > > headerssort.sh: 10: Syntax error: "(" unexpected I think the error is due to line 10 containing bash-style syntax. Hmm, have you tried to use 'bash' instead of 'sh' to run this script? Thanks Richard