Git Mailing List Archive mirror
 help / color / mirror / Atom feed
From: Justin Tobler <jltobler@gmail.com>
To: git@vger.kernel.org
Cc: Justin Tobler <jltobler@gmail.com>
Subject: [PATCH v3 4/5] ci: make the whitespace report optional
Date: Fri,  3 May 2024 12:21:06 -0500	[thread overview]
Message-ID: <20240503172110.181326-5-jltobler@gmail.com> (raw)
In-Reply-To: <20240503172110.181326-1-jltobler@gmail.com>

The `check-whitespace` CI job generates a formatted output file
containing whitespace error information. As not all CI providers support
rendering a formatted summary, make its generation optional.

Signed-off-by: Justin Tobler <jltobler@gmail.com>
---
 ci/check-whitespace.sh | 45 +++++++++++++++++++++++++++++++-----------
 1 file changed, 33 insertions(+), 12 deletions(-)

diff --git a/ci/check-whitespace.sh b/ci/check-whitespace.sh
index 9cc496da40..db399097a5 100755
--- a/ci/check-whitespace.sh
+++ b/ci/check-whitespace.sh
@@ -1,9 +1,20 @@
 #!/usr/bin/env bash
+#
+# Check that commits after a specified point do not contain new or modified
+# lines with whitespace errors. An optional formatted summary can be generated
+# by providing an output file path and url as additional arguments.
+#
 
 baseCommit=$1
 outputFile=$2
 url=$3
 
+if test "$#" -ne 1 && test "$#" -ne 3
+then
+	echo "USAGE: $0 <BASE_COMMIT> [<OUTPUT_FILE> <URL>]"
+	exit 1
+fi
+
 problems=()
 commit=
 commitText=
@@ -56,19 +67,29 @@ then
 		goodParent=${baseCommit: 0:7}
 	fi
 
-	echo "🛑 Please review the Summary output for further information."
-	echo "### :x: A whitespace issue was found in one or more of the commits." >"$outputFile"
-	echo "" >>"$outputFile"
-	echo "Run these commands to correct the problem:" >>"$outputFile"
-	echo "1. \`git rebase --whitespace=fix ${goodParent}\`" >>"$outputFile"
-	echo "1. \`git push --force\`" >>"$outputFile"
-	echo " " >>"$outputFile"
-	echo "Errors:" >>"$outputFile"
+	echo "A whitespace issue was found in onen of more of the commits."
+	echo "Run the following command to resolve whitespace issues:"
+	echo "git rebase --whitespace=fix ${goodParent}"
+
+	# If target output file is provided, write formatted output.
+	if test -n "$outputFile"
+	then
+		echo "🛑 Please review the Summary output for further information."
+		(
+			echo "### :x: A whitespace issue was found in one or more of the commits."
+			echo ""
+			echo "Run these commands to correct the problem:"
+			echo "1. \`git rebase --whitespace=fix ${goodParent}\`"
+			echo "1. \`git push --force\`"
+			echo ""
+			echo "Errors:"
 
-	for i in "${problems[@]}"
-	do
-		echo "${i}" >>"$outputFile"
-	done
+			for i in "${problems[@]}"
+			do
+				echo "${i}"
+			done
+		) >"$outputFile"
+	fi
 
 	exit 2
 fi
-- 
2.45.0


  parent reply	other threads:[~2024-05-03 17:23 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-30  0:33 [PATCH 0/2] Add GitLab CI to check for whitespace errors Justin Tobler
2024-04-30  0:33 ` [PATCH 1/2] ci: pre-collapse GitLab CI sections Justin Tobler
2024-04-30  0:33 ` [PATCH 2/2] gitlab-ci: add whitespace error check Justin Tobler
2024-04-30  1:59   ` James Liu
2024-04-30  3:01     ` Justin Tobler
2024-04-30  5:04       ` Patrick Steinhardt
2024-04-30  5:04   ` Patrick Steinhardt
2024-04-30 12:14     ` Taylor Blau
2024-04-30 14:00     ` Justin Tobler
2024-04-30 14:05       ` Patrick Steinhardt
2024-04-30 14:41         ` Justin Tobler
2024-04-30 14:45           ` Patrick Steinhardt
2024-04-30 14:58             ` Justin Tobler
2024-05-02 19:38 ` [PATCH v2 0/5] Add GitLab CI to check for whitespace errors Justin Tobler
2024-05-02 19:38   ` [PATCH v2 1/5] ci: pre-collapse GitLab CI sections Justin Tobler
2024-05-02 19:38   ` [PATCH v2 2/5] github-ci: fix link to whitespace error Justin Tobler
2024-05-02 19:38   ` [PATCH v2 3/5] ci: separate whitespace check script Justin Tobler
2024-05-03  6:56     ` Patrick Steinhardt
2024-05-03 15:27       ` Justin Tobler
2024-05-03 16:49         ` Junio C Hamano
2024-05-03 17:59           ` Patrick Steinhardt
2024-05-04  6:51             ` Chris Torek
2024-05-02 19:38   ` [PATCH v2 4/5] ci: make the whitespace report optional Justin Tobler
2024-05-03  6:56     ` Patrick Steinhardt
2024-05-03 15:35       ` Justin Tobler
2024-05-02 19:38   ` [PATCH v2 5/5] gitlab-ci: add whitespace error check Justin Tobler
2024-05-03  6:56     ` Patrick Steinhardt
2024-05-02 21:45   ` [PATCH v2 0/5] Add GitLab CI to check for whitespace errors Junio C Hamano
2024-05-03 15:39     ` Justin Tobler
2024-05-03 17:21   ` [PATCH v3 " Justin Tobler
2024-05-03 17:21     ` [PATCH v3 1/5] ci: pre-collapse GitLab CI sections Justin Tobler
2024-05-03 17:21     ` [PATCH v3 2/5] github-ci: fix link to whitespace error Justin Tobler
2024-05-03 17:21     ` [PATCH v3 3/5] ci: separate whitespace check script Justin Tobler
2024-05-03 17:21     ` Justin Tobler [this message]
2024-05-03 17:21     ` [PATCH v3 5/5] gitlab-ci: add whitespace error check Justin Tobler
2024-05-06  6:55       ` Patrick Steinhardt
2024-05-06 13:59         ` Justin Tobler
2024-05-06 17:17         ` Junio C Hamano
2024-05-06 19:21           ` Justin Tobler
2024-05-07  4:12             ` Patrick Steinhardt
2024-05-07 18:06               ` Justin Tobler
2024-05-07 18:12                 ` Patrick Steinhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240503172110.181326-5-jltobler@gmail.com \
    --to=jltobler@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).