Commit 79e2c0c1 authored by copilot-swe-agent[bot]'s avatar copilot-swe-agent[bot]
Browse files

Replace lychee with targeted ISO link validation for src/define.sh

parent 21a663a9
Loading
Loading
Loading
Loading
+42 −3
Original line number Diff line number Diff line
@@ -35,6 +35,45 @@ jobs:
          yaml_exclude_regex: ".*\\kubernetes\\.yml$"
      -
        name: Validate Links
        uses: lycheeverse/lychee-action@v2
        with:
          fail: true
        run: |
          errors=0
          count=0
          host=""
          declare -A seen

          check() {
            local url="$1" http
            http=$(curl -sSL -o /dev/null -w "%{http_code}" --max-time 10 -I -- "$url" 2>&1) || http="000"
            [[ "$http" == 2* ]] && return 0
            http=$(curl -sSL -o /dev/null -w "%{http_code}" --max-time 10 -r "0-0" -- "$url" 2>&1) || http="000"
            [[ "$http" == 2* ]]
          }

          while IFS= read -r line; do
            if [[ "$line" =~ ^[[:space:]]*local[[:space:]]+host=\"(https://[^\"]+)\" ]]; then
              host="${BASH_REMATCH[1]%/}"
              continue
            fi
            [[ "$line" =~ ^[[:space:]]*url=\"(.+)\" ]] || continue
            val="${BASH_REMATCH[1]#/}"
            if [[ "$val" == https://* ]]; then
              url="$val"
            elif [[ -n "$host" ]]; then
              url="$host/$val"
            else
              continue
            fi
            [[ -v seen[$url] ]] && continue
            seen[$url]=1
            count=$((count + 1))
            if check "$url"; then
              echo "  OK: $url"
            else
              echo "FAIL: $url"
              errors=$((errors + 1))
            fi
          done < "src/define.sh"

          echo ""
          printf '%d/%d links valid\n' "$(( count - errors ))" "$count"
          (( errors == 0 ))