mirror of
https://github.com/cytopia/devilbox.git
synced 2025-03-26 22:08:34 +00:00
44 lines
1016 B
Bash
Executable File
44 lines
1016 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
setval() {
|
|
printf -v "$1" "%s" "$(cat)";
|
|
declare -p "$1";
|
|
}
|
|
|
|
RETURN=0
|
|
|
|
for url in $(find _includes/ -name \*.rst -exec grep -Eo 'http(s)?://[-?:,._a/#-Z0-9]+' {} \; | sort -u ); do
|
|
|
|
# Try to curl multiple times in case host is currently not reachable
|
|
max=60; i=0; fail=0
|
|
eval "$( curl -SsI "${url}" 2> >(setval errval) > >(setval header); <<<"$?" setval retval; )"
|
|
while [ "${retval}" != "0" ] ; do
|
|
#while ! header="$( curl -I "${url}" 2>/dev/null )"; do
|
|
i=$(( i + 1 ))
|
|
sleep 2
|
|
if [ "${i}" -gt "${max}" ]; then
|
|
fail=1
|
|
break;
|
|
fi
|
|
done
|
|
|
|
# Curl request failed
|
|
if [ "${fail}" = "1" ]; then
|
|
printf "\e[0;31m[FAIL]\e[0m %s %s\n" "${url}" "${errval}"
|
|
|
|
# Curl request succeeded
|
|
else
|
|
line="$( echo "${header}" | grep -E '^HTTP/(1|2)' )"
|
|
stat="$( echo "${line}" | awk '{print $2}' )"
|
|
|
|
if [ "${stat}" != "200" ]; then
|
|
printf "\e[0;31m[ERR]\e[0m %s %s\n" "${url}" "${line}"
|
|
RETURN=1
|
|
else
|
|
printf "\e[0;32m[OK]\e[0m %s\n" "${url}"
|
|
fi
|
|
fi
|
|
done
|
|
|
|
exit ${RETURN}
|