mirror of
https://github.com/awslabs/aws-crt-php.git
synced 2026-08-17 17:47:12 +00:00
clang-format 18 (#113)
This commit is contained in:
@@ -5,17 +5,15 @@ on: [push]
|
|||||||
jobs:
|
jobs:
|
||||||
clang-format:
|
clang-format:
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-24.04 # latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Sources
|
- name: Checkout Sources
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: clang-format lint
|
- name: clang-format lint
|
||||||
uses: DoozyX/[email protected]
|
run: |
|
||||||
with:
|
./format-check.py
|
||||||
# List of extensions to check
|
|
||||||
extensions: c
|
|
||||||
|
|
||||||
check-submodules:
|
check-submodules:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
@@ -209,6 +209,7 @@ src/*.dylib
|
|||||||
src/*.dll
|
src/*.dll
|
||||||
/x64/
|
/x64/
|
||||||
awscrt.dep
|
awscrt.dep
|
||||||
|
*~
|
||||||
|
|
||||||
# ignoring output of package.xml as it needs to be generated from ./prepare_release.sh in each publishing
|
# ignoring output of package.xml as it needs to be generated from ./prepare_release.sh in each publishing
|
||||||
package.xml
|
package.xml
|
||||||
|
|||||||
Executable
+46
@@ -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)
|
||||||
@@ -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
|
|
||||||
Reference in New Issue
Block a user