@@ -92,16 +92,23 @@ invoke_formatter() {
9292 }
9393 ;;
9494 gersemi)
95- local formatter=gersemi
96- if (( ${+commands[gersemi]} )) {
97- local gersemi_version=($( gersemi --version) )
9895
99- if ! is-at-least 0.21.0 ${gersemi_version[2]} ; then
100- log_error " gersemi is not version 0.21.0 or above (found ${gersemi_version[2]} ."
101- exit 2
102- fi
96+ if (( ${+commands[gersemi-0.25]} )) {
97+ local formatter=gersemi-0.25
98+ } elif (( ${+commands[gersemi]} )) {
99+ local formatter=gersemi
100+ } else {
101+ log_error " No viable gersemi version found (required 0.25.0)"
102+ exit 2
103103 }
104104
105+ local gersemi_version=($( ${formatter} --version) )
106+
107+ if ! is-at-least 0.25.0 ${gersemi_version[2]} ; then
108+ log_error " gersemi is not version 0.25.0 or above (found ${gersemi_version[2]} ."
109+ exit 2
110+ fi
111+
105112 if (( ! #source_files )) source_files=(CMakeLists.txt (libobs| libobs-* | frontend| plugins| deps| shared| cmake| test)/** /(CMakeLists.txt| * .cmake)(.N))
106113
107114 source_files=(${source_files:#*/ (jansson|decklink/*/ decklink-sdk|obs-websocket|obs-browser|libdshowcapture)/* } )
@@ -112,16 +119,29 @@ invoke_formatter() {
112119 local -a source_files=($@ )
113120 local file
114121 local -a command=(${formatter} -c --no-cache ${source_files} )
122+ local -i in_error=0
115123
116124 if (( ${# source_files} )) {
117125 while read -r line; do
118126 local -a line_tokens=(${(z)line} )
119127 if (( #line_tokens )) {
120- file=${line_tokens[1]//* ${project_root} \/ / }
121-
122- log_error " ${file} requires formatting changes."
128+ file=${line_tokens[1]}
129+
130+ if [[ -r ${file} ]] {
131+ in_error=0
132+ file=${file//* ${project_root} \/ / }
133+
134+ log_error " ${file} requires formatting changes."
135+ } else {
136+ if (( in_error )) {
137+ log_output " ${line} "
138+ } else {
139+ log_error " ${line} "
140+ }
141+ in_error=1
142+ }
123143 } else {
124- log_error " ${line} "
144+ log_output " ${line} "
125145 }
126146
127147 if (( fail_on_error == 2 )) return 2
0 commit comments