clang-format 18 (#113)

This commit is contained in:
Michael Graeb
2024-06-14 10:39:21 -07:00
committed by GitHub
parent a63485b65b
commit c67be51497
4 changed files with 51 additions and 30 deletions
+4 -6
View File
@@ -5,17 +5,15 @@ on: [push]
jobs:
clang-format:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04 # latest
steps:
- name: Checkout Sources
uses: actions/checkout@v1
uses: actions/checkout@v4
- name: clang-format lint
uses: DoozyX/[email protected]
with:
# List of extensions to check
extensions: c
run: |
./format-check.py
check-submodules:
runs-on: ubuntu-latest
+1
View File
@@ -209,6 +209,7 @@ src/*.dylib
src/*.dll
/x64/
awscrt.dep
*~
# ignoring output of package.xml as it needs to be generated from ./prepare_release.sh in each publishing
package.xml
+46
View File
@@ -0,0 +1,46 @@
#!/usr/bin/env python3
import argparse
import os
from pathlib import Path
import re
from subprocess import list2cmdline, run
from tempfile import NamedTemporaryFile
CLANG_FORMAT_VERSION = '18.1.6'
INCLUDE_REGEX = re.compile(r'^ext/.*\.(c|h|inl)$')
EXCLUDE_REGEX = re.compile(r'^$')
arg_parser = argparse.ArgumentParser(description="Check with clang-format")
arg_parser.add_argument('-i', '--inplace-edit', action='store_true',
help="Edit files inplace")
args = arg_parser.parse_args()
os.chdir(Path(__file__).parent)
# create file containing list of all files to format
filepaths_file = NamedTemporaryFile(delete=False)
for dirpath, dirnames, filenames in os.walk('.'):
for filename in filenames:
# our regexes expect filepath to use forward slash
filepath = Path(dirpath, filename).as_posix()
if not INCLUDE_REGEX.match(filepath):
continue
if EXCLUDE_REGEX.match(filepath):
continue
filepaths_file.write(f"{filepath}\n".encode())
filepaths_file.close()
# use pipx to run clang-format from PyPI
# this is a simple way to run the same clang-format version regardless of OS
cmd = ['pipx', 'run', f'clang-format=={CLANG_FORMAT_VERSION}',
f'--files={filepaths_file.name}']
if args.inplace_edit:
cmd += ['-i']
else:
cmd += ['--Werror', '--dry-run']
print(f"{Path.cwd()}$ {list2cmdline(cmd)}")
if run(cmd).returncode:
exit(1)
-24
View File
@@ -1,24 +0,0 @@
#!/bin/bash
if [[ -z $CLANG_FORMAT ]] ; then
CLANG_FORMAT=clang-format
fi
if NOT type $CLANG_FORMAT 2> /dev/null ; then
echo "No appropriate clang-format found."
exit 1
fi
FAIL=0
SOURCE_FILES=`find src ext -type f \( -name '*.c' \)`
for i in $SOURCE_FILES
do
$CLANG_FORMAT -output-replacements-xml $i | grep -c "<replacement " > /dev/null
if [ $? -ne 1 ]
then
echo "$i failed clang-format check."
FAIL=1
fi
done
exit $FAIL