Kokoro: Ensure that no CRLF creep in
Bug: dawn:1339
Change-Id: Ie617969521c20a86763080c3400054ea2fad6779
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/86141
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/infra/kokoro/linux/docker.sh b/infra/kokoro/linux/docker.sh
index 65e10f0..e8608a6 100755
--- a/infra/kokoro/linux/docker.sh
+++ b/infra/kokoro/linux/docker.sh
@@ -86,6 +86,9 @@
cd ${SRC_DIR}
git clone ${CLONE_SRC_DIR} .
+status "Checking for CRLF"
+./tools/check-no-crlf
+
status "Fetching dependencies"
cp scripts/standalone.gclient .gclient
with_retry gclient sync
diff --git a/tools/check-no-crlf b/tools/check-no-crlf
new file mode 100755
index 0000000..1bfb5ee
--- /dev/null
+++ b/tools/check-no-crlf
@@ -0,0 +1,27 @@
+#!/bin/bash
+# Copyright 2022 The Tint Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# If there are files in the repo with CRLF endings, then they will be printed
+# and the script will exit with 1. If there are no files with CRLF endings, then
+# the script will print nothing and will exit with 0.
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )"
+ROOT_DIR="$( cd "${SCRIPT_DIR}/.." >/dev/null 2>&1 && pwd )"
+CRLF_FILES=$(git -C ${ROOT_DIR} grep -I --files-with-matches --perl-regexp '\r' .)
+if [ ! -z ${CRLF_FILES} ]; then
+ echo "The following files contain CRLF characters:"
+ echo ${CRLF_FILES}
+ exit 1
+fi