mirror of https://github.com/OpenVPN/openvpn-gui
				
				
				
			GHA: Switch to clang-format for format check
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>pull/718/head
							parent
							
								
									48581fe00a
								
							
						
					
					
						commit
						16454847c6
					
				|  | @ -3,29 +3,26 @@ name: Build | |||
| on: [push, pull_request] | ||||
| 
 | ||||
| jobs: | ||||
|   checkuncrustify: | ||||
|     name: "Check code style with Uncrustify" | ||||
|     # Ubuntu 22.04 has uncrustify 0.72_f | ||||
|     runs-on: ubuntu-22.04 | ||||
|   checkformat: | ||||
|     name: "Check code style with clang-format" | ||||
|     runs-on: ubuntu-24.04 | ||||
|     steps: | ||||
|       - name: Install dependencies | ||||
|         run: sudo apt update && sudo apt install -y uncrustify | ||||
|       - name: Install pre-commit | ||||
|         run: pip3 install pre-commit | ||||
|       - name: Checkout OpenVPN-GUI | ||||
|         uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | ||||
|       - name: Show uncrustify version | ||||
|         run: uncrustify --version | ||||
|       - name: Run uncrustify | ||||
|         run: ./dev-tools/reformat-all.sh | ||||
|       - name: Run pre-commit | ||||
|         run: pre-commit run -a || true | ||||
|       - name: Check for changes | ||||
|         run: git diff --output=uncrustify-changes.patch | ||||
|         run: git diff --output=cf-changes.patch | ||||
|       - name: Show changes on standard output | ||||
|         run: git diff | ||||
|       - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4 | ||||
|         with: | ||||
|           name: uncrustify-changes.patch | ||||
|           path: uncrustify-changes.patch | ||||
|           name: cf-changes.patch | ||||
|           path: cf-changes.patch | ||||
|       - name: Set job status | ||||
|         run: test ! -s uncrustify-changes.patch | ||||
|         run: test ! -s cf-changes.patch | ||||
| 
 | ||||
|   msvc: | ||||
|     strategy: | ||||
|  |  | |||
|  | @ -1,136 +0,0 @@ | |||
| #!/bin/sh | ||||
| # reformat-all.sh - Reformat all git files in the checked out | ||||
| #                   git branch using uncrustify. | ||||
| # | ||||
| # Copyright (C) 2016-2023 - David Sommerseth <davids@openvpn.net> | ||||
| # | ||||
| # This program is free software; you can redistribute it and/or | ||||
| # modify it under the terms of the GNU General Public License | ||||
| # as published by the Free Software Foundation; either version 2 | ||||
| # of the License. | ||||
| # | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| # GNU General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU General Public License | ||||
| # along with this program; if not, write to the Free Software | ||||
| # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. | ||||
| # | ||||
| 
 | ||||
| tstamp="$(date +%Y%m%d-%H%M%S)" | ||||
| files="$(pwd)/reformat-all_files-$tstamp.lst" | ||||
| log="$(pwd)/reformat-all_log-$tstamp.txt" | ||||
| 
 | ||||
| srcroot="$(git rev-parse --show-toplevel)" | ||||
| cfg="$srcroot/dev-tools/uncrustify.conf" | ||||
| specialfiles="$srcroot/dev-tools/special-files.lst" | ||||
| 
 | ||||
| export gitfiles=0 | ||||
| export procfiles=0 | ||||
| 
 | ||||
| # Go to the root of the source tree | ||||
| cd "$srcroot" | ||||
| 
 | ||||
| { | ||||
|     echo -n "** Starting $0: " | ||||
|     date | ||||
| 
 | ||||
|     # Find all C source/header files | ||||
|     git ls-files | grep -E ".*\.[ch](\.in$|$)" > "${files}.git" | ||||
| 
 | ||||
|     # Manage files which needs special treatment | ||||
|     awk -F\# '{gsub("\n| ", "", $1); print $1}' "$specialfiles" > "${files}.sp" | ||||
|     while read srcfile | ||||
|     do | ||||
|         res=$(grep "$srcfile" "${files}.sp" 2>/dev/null) | ||||
|         if [ $? -ne 0 ]; then | ||||
|             # If grep didn't find the file among special files, | ||||
|             # process it normally | ||||
|             echo "$srcfile" >> "$files" | ||||
|         else | ||||
|             mode=$(echo "$res" | cut -d:  -f1) | ||||
|             case "$mode" in | ||||
|                 E) | ||||
|                     echo "** INFO **  Excluding '$srcfile'" | ||||
|                     ;; | ||||
|                 P) | ||||
|                     echo "** INFO **  Pre-patching '$srcfile'" | ||||
|                     patchfile="${srcroot}"/dev-tools/reformat-patches/before_$(echo "$srcfile" | tr "/" "_").patch | ||||
|                     if [ -r "$patchfile" ]; then | ||||
|                         git apply "$patchfile" | ||||
|                         if [ $? -ne 0 ]; then | ||||
|                             echo "** ERROR **  Failed to apply pre-patch file: $patchfile" | ||||
|                             exit 2 | ||||
|                         fi | ||||
|                     else | ||||
|                         echo "** WARN ** Pre-patch file for $srcfile is missing: $patchfile" | ||||
|                     fi | ||||
|                     echo "$srcfile" >> "${files}.postpatch" | ||||
|                     echo "$srcfile" >> "$files" | ||||
|                     ;; | ||||
|                 *) | ||||
|                     echo "** WARN ** Unknown mode '$mode' for file '$srcfile'" | ||||
|                     ;; | ||||
|             esac | ||||
|         fi | ||||
|     done < "${files}.git" | ||||
|     rm -f "${files}.git" "${files}.sp" | ||||
| 
 | ||||
|     # Kick off uncrustify | ||||
|     echo | ||||
|     echo "** INFO ** Running: uncrustify -c $cfg --no-backup -l C -F $files" | ||||
|     uncrustify -c "$cfg" --no-backup -l C -F "$files" 2>&1 | ||||
|     res=$? | ||||
|     echo "** INFO ** Uncrustify completed (exit code $res)" | ||||
| } | tee "${log}-1"  # Log needs to be closed here, to be processed in next block | ||||
| 
 | ||||
| { | ||||
|     # Check the results | ||||
|     gitfiles=$(wc -l "$files" | cut -d\  -f1) | ||||
|     procfiles=$(grep "Parsing: " "${log}-1" | wc -l) | ||||
|     echo | ||||
|     echo "C source/header files checked into git: $gitfiles" | ||||
|     echo "Files processed by uncrustify:          $procfiles" | ||||
|     echo | ||||
| 
 | ||||
|     # Post-Patch files modified after we uncrustify have adjusted them | ||||
|     if [ -r "${files}.postpatch" ]; then | ||||
|         while read srcfile; | ||||
|         do | ||||
|             patchfile="${srcroot}"/dev-tools/reformat-patches/after_$(echo "$srcfile" | tr "/" "_").patch | ||||
|             if [ -r "$patchfile" ]; then | ||||
|                 echo "** INFO **  Post-patching '$srcfile'" | ||||
|                 git apply "$patchfile" | ||||
|                 if [ $? -ne 0 ]; then | ||||
|                     echo "** WARN ** Failed to apply $patchfile" | ||||
|                 fi | ||||
|             else | ||||
|                 echo "** WARN ** Post-patch file for $srcfile is missing: $patchfile" | ||||
|             fi | ||||
|         done < "${files}.postpatch" | ||||
|         rm -f "${files}.postpatch" | ||||
|     fi | ||||
| } | tee "${log}-2" # Log needs to be closed here, to be processed in next block | ||||
| 
 | ||||
| cat "${log}-1" "${log}-2" > "$log" | ||||
| 
 | ||||
| { | ||||
|     ec=1 | ||||
|     echo | ||||
|     if [ "$gitfiles" -eq "$procfiles" ]; then | ||||
|         echo "Reformatting completed successfully" | ||||
|         ec=0 | ||||
|     else | ||||
|         last=$(tail -n1 "${log}-1") | ||||
|         echo "** ERROR ** Reformating failed to process all files." | ||||
|         echo "            uncrustify exit code: $res" | ||||
|         echo "            Last log line: $last" | ||||
|         echo | ||||
|     fi | ||||
|     rm -f "${log}-1" "${log}-2" | ||||
| } | tee -a "$log" | ||||
| rm -f "${files}" | ||||
| 
 | ||||
| exit $ec | ||||
|  | @ -1,79 +0,0 @@ | |||
| # Use Allman-style | ||||
| indent_columns=4 | ||||
| indent_braces=false | ||||
| indent_else_if=false | ||||
| indent_switch_case=4 | ||||
| indent_label=1 | ||||
| nl_if_brace=add | ||||
| nl_brace_else=add | ||||
| nl_elseif_brace=add | ||||
| nl_else_brace=add | ||||
| nl_else_if=remove | ||||
| nl_for_brace=add | ||||
| nl_while_brace=add | ||||
| nl_switch_brace=add | ||||
| nl_fdef_brace=add | ||||
| nl_do_brace=add | ||||
| sp_func_proto_paren=Remove | ||||
| sp_func_def_paren=Remove | ||||
| sp_func_call_paren=Remove | ||||
| sp_sizeof_paren=Remove | ||||
| 
 | ||||
| # No tabs, spaces only | ||||
| indent_with_tabs=0 | ||||
| align_with_tabs=false | ||||
| cmt_convert_tab_to_spaces=true | ||||
| 
 | ||||
| # Do not put spaces between the # and preprocessor statements | ||||
| pp_space=remove | ||||
| 
 | ||||
| # Various whitespace fiddling | ||||
| sp_assign=add | ||||
| sp_before_sparen=add | ||||
| sp_inside_sparen=remove | ||||
| sp_cond_colon=add | ||||
| sp_cond_question=add | ||||
| sp_bool=add | ||||
| sp_else_brace=add | ||||
| sp_brace_else=add | ||||
| sp_after_comma=add | ||||
| pos_arith=Lead | ||||
| pos_bool=Lead | ||||
| nl_func_type_name=add | ||||
| nl_before_case=true | ||||
| nl_assign_leave_one_liners=true | ||||
| nl_enum_leave_one_liners=true | ||||
| nl_brace_fparen=add | ||||
| nl_max=4 | ||||
| nl_after_func_proto=2 | ||||
| nl_end_of_file_min=1 | ||||
| nl_end_of_file=force | ||||
| 
 | ||||
| # Always use scoping braces for conditionals | ||||
| mod_full_brace_if=add | ||||
| mod_full_brace_if_chain=false | ||||
| mod_full_brace_while=add | ||||
| mod_full_brace_for=add | ||||
| mod_full_brace_do=add | ||||
| 
 | ||||
| # Annotate #else and #endif statements | ||||
| mod_add_long_ifdef_endif_comment=20 | ||||
| mod_add_long_ifdef_else_comment=5 | ||||
| 
 | ||||
| # Misc cleanup | ||||
| mod_remove_extra_semicolon=true | ||||
| 
 | ||||
| # leave blank at end of empty for() statements | ||||
| sp_after_semi_for_empty=Add | ||||
| 
 | ||||
| # Use C-style comments (/* .. */) | ||||
| cmt_c_nl_end=true | ||||
| cmt_star_cont=true | ||||
| cmt_cpp_to_c=true | ||||
| 
 | ||||
| # Use "char **a"-style pointer stars/dereferences | ||||
| sp_before_ptr_star=Add | ||||
| sp_between_ptr_star=Remove | ||||
| sp_after_ptr_star=Remove | ||||
| sp_before_byref=Add | ||||
| sp_after_byref=Remove | ||||
		Loading…
	
		Reference in New Issue
	
	 Frank Lichtenheld
						Frank Lichtenheld