1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 12:54:51 +00:00

Only check formatting on modified files (#1673)

* only check formatting on modified files (attempt 1)

* foreshadow maximum command string length being an issue and pass files list using a file

* rm temp file list otherwise it shows in git status and counts as a "formatting diff"...

* cheeky z_play modif

* format
This commit is contained in:
Dragorn421 2024-01-31 04:25:24 +01:00 committed by GitHub
parent 87a886df5b
commit 44408ce219
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 66 additions and 7 deletions

20
Jenkinsfile vendored
View File

@ -4,10 +4,24 @@ pipeline {
} }
stages { stages {
stage('Check formatting') { stage('Check formatting (full)') {
when {
branch 'main'
}
steps { steps {
echo 'Checking formatting...' echo 'Checking formatting on all files...'
sh 'tools/check_format.sh' sh 'tools/check_format.sh full'
}
}
stage('Check formatting (modified)') {
when {
not {
branch 'main'
}
}
steps {
echo 'Checking formatting on modified files...'
sh 'tools/check_format.sh modified'
} }
} }
stage('Setup') { stage('Setup') {

View File

@ -9,6 +9,7 @@ import shutil
import subprocess import subprocess
import sys import sys
import tempfile import tempfile
from pathlib import Path
from functools import partial from functools import partial
from typing import List from typing import List
@ -150,6 +151,15 @@ def main():
action="store_true", action="store_true",
help="Print the paths to the clang-* binaries used", help="Print the paths to the clang-* binaries used",
) )
parser.add_argument(
"--files-list",
dest="files_list",
help="A file listing the files to format",
)
parser.add_argument(
"--verbose",
action="store_true",
)
parser.add_argument("files", metavar="file", nargs="*") parser.add_argument("files", metavar="file", nargs="*")
parser.add_argument( parser.add_argument(
"-j", "-j",
@ -175,10 +185,18 @@ def main():
f"Error: neither clang-apply-replacements nor clang-apply-replacements-{CLANG_VER} found (required to use -j)" f"Error: neither clang-apply-replacements nor clang-apply-replacements-{CLANG_VER} found (required to use -j)"
) )
if args.files: if args.files or args.files_list:
files = args.files files = []
files.extend(args.files)
if args.files_list:
files.extend(Path(args.files_list).read_text().split())
files = list(files)
extra_files = [] extra_files = []
if args.verbose:
print("Formatting specific files:", len(files), files)
else: else:
if args.verbose:
print("Formatting all files")
files = glob.glob("src/**/*.c", recursive=True) files = glob.glob("src/**/*.c", recursive=True)
extra_files = glob.glob("assets/**/*.xml", recursive=True) extra_files = glob.glob("assets/**/*.xml", recursive=True)

View File

@ -1,8 +1,35 @@
#!/bin/bash #!/bin/bash
if [ $# -ne 1 ]
then
echo "Usage: $0 <full | modified>. Exiting."
exit -1
fi
STATUSOLD=`git status --porcelain` STATUSOLD=`git status --porcelain`
./format.py -j
if [ $? -ne 0 ] if [ $1 = 'modified' ]
then
FILES_LIST=.tmp_format_modified_files_list.txt
git show --name-only --format='' origin/main.. | grep 'src/.*\.c' | sort | uniq > $FILES_LIST
if [ ${PIPESTATUS[0]} -ne 0 ] # git show failed
then
echo "Listing modified files failed. Exiting."
exit -1
fi
./format.py --verbose -j`nproc` --files-list $FILES_LIST
FORMAT_EXIT_CODE=$?
rm $FILES_LIST
elif [ $1 = 'full' ]
then
./format.py -j
FORMAT_EXIT_CODE=$?
else
echo "Unknown argument $1. Exiting."
exit -1
fi
if [ $FORMAT_EXIT_CODE -ne 0 ]
then then
echo "Formatter failed. Exiting." echo "Formatter failed. Exiting."
exit -1 exit -1