From e20ed8d3f4410871edf03612c7ceebad5899d34a Mon Sep 17 00:00:00 2001 From: wyatt-avilla Date: Sun, 22 Oct 2023 01:27:12 -0700 Subject: [PATCH] script capable of testing all patches when given a directory --- .github/workflows/testPatches.sh | 46 ++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 .github/workflows/testPatches.sh diff --git a/.github/workflows/testPatches.sh b/.github/workflows/testPatches.sh new file mode 100755 index 0000000..e1b3e79 --- /dev/null +++ b/.github/workflows/testPatches.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +update_line() { + local line="$1" # line from opened file is passed in + local testResult="$2" # result from git diff + + echo "Processing line: $line with additional argument: $additional_argument" +} + +wikiDirectory=./dwl.wiki +dwlSrcDirectory=./dwl +patchRE="https://github\.com/[^/]+/[^/]+/compare/[^/]+\.patch" + +for file in "$wikiDirectory"/*.md; do + if [ -f "$file" ]; then + if ! grep -q "Download" "$file"; then + echo "no download heading found in $file, skipping..." + continue + fi + + while IFS= read -r line + do + if [[ $line =~ $patchRE ]]; then + extractedURL=${BASH_REMATCH[0]} + patchAccessResult=$(curl -s -w "%{http_code}" -o /dev/null "$extractedURL") + if [ "$patchAccessResult" -ne 200 ]; then + update_line "$line" "inaccessible" + continue + fi + + git -C $dwlSrcDirectory apply --check <(curl -s "$extractedURL") > /dev/null 2>&1 + patchApplicationExitCode=$? + if [ $patchApplicationExitCode -eq 0 ]; then + printf "\e[32m[PASS]\e[0m %-40s\n" "$extractedURL" + update_line "$line" "pass" + else + printf "\e[31m[FAIL]\e[0m %-40s\n" "$extractedURL" + update_line "$line" "fail" + fi + + fi + done < "$file" + + + fi +done