diff --git a/.github/workflows/links.yml b/.github/workflows/links.yml deleted file mode 100644 index b054901..0000000 --- a/.github/workflows/links.yml +++ /dev/null @@ -1,67 +0,0 @@ -name: Links - -on: - workflow_dispatch: - -concurrency: - group: links - cancel-in-progress: false - -jobs: - links: - name: Links - runs-on: ubuntu-latest - permissions: - actions: read - packages: read - contents: read - steps: - - - name: Checkout - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - - name: Validate Links - run: | - errors=0 - count=0 - host="" - declare -A seen - wget https://github.com/lwthiker/curl-impersonate/releases/download/v0.6.1/curl-impersonate-v0.6.1.x86_64-linux-gnu.tar.gz - tar -xzf curl-impersonate-v0.6.1.x86_64-linux-gnu.tar.gz - sudo cp curl-impersonate-ff /usr/local/bin/ - check() { - local url="$1" http - http=$(curl-impersonate-ff -sSL -o /dev/null -w "%{http_code}" --max-time 10 -I -- "$url" 2>&1) || http="000" - [[ "$http" == 2* ]] && return 0 - http=$(curl-impersonate-ff -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 ))