1
0
mirror of https://github.com/ru-de/faq.git synced 2024-12-24 01:41:50 +00:00
faq-de/files/.travis.sh

65 lines
2.2 KiB
Bash
Raw Normal View History

2016-01-18 23:38:49 +00:00
#!/bin/bash
2016-01-19 08:15:30 +00:00
DIR=`dirname $0`
2016-01-18 23:38:49 +00:00
EXIT_CODE=0
2017-01-12 23:27:07 +00:00
find *.md -exec blackfriday-tool {} {}.html \;
2016-01-19 08:15:30 +00:00
go build -o $DIR/spell-checker $DIR/spell-checker.go
2016-01-19 15:25:59 +00:00
cat $DIR/dictionary.dic | tr '\n' '|' | sed 's/\x27/\\x27/g' > dictionary_processed
DICT_REGEXP=$(cat dictionary_processed | sed 's/|/[^[:alnum:]]\\|/g')
DICT_REGEXP_EOF=$(cat dictionary_processed | sed 's/|$//g' | sed 's/|/$\\|/g')
DICT_REGEXP="$DICT_REGEXP$DICT_REGEXP_EOF$"
2016-01-19 12:50:18 +00:00
git diff HEAD^ --name-status | grep "^D" -v | sed 's/^.\t//g' | grep "\.md$" > changed_files
2016-01-18 23:38:49 +00:00
while read FILE; do
echo -n "Проверка файла $FILE на опечатки... ";
2016-01-19 20:41:43 +00:00
OUTPUT=$(cat "$FILE" | sed "s/$DICT_REGEXP//gi" | sed 's/https\?:[^ ]*//g' | sed "s/[(][^)]*\.md[)]//g" | hunspell -d russian-aot,ru_RU,de_DE,en_US | $DIR/spell-checker);
2016-01-19 15:36:03 +00:00
OUTPUT_EXIT_CODE=$?
2016-01-18 23:38:49 +00:00
2016-01-19 15:36:03 +00:00
if [ $OUTPUT_EXIT_CODE -ne 0 ]; then
EXIT_CODE=1
2016-01-18 23:38:49 +00:00
echo "ошибка";
2016-01-19 15:25:59 +00:00
echo "$OUTPUT";
2016-01-18 23:38:49 +00:00
else
echo "пройдена";
fi
echo
2016-01-18 23:38:49 +00:00
done < changed_files
2017-01-12 23:27:07 +00:00
while read FILE; do
if [ -f "${FILE}.html" ]; then
grep -Po '(?<=href=")http[^"]*(?=")' "${FILE}.html" > links
if [ -s links ]; then
2017-01-13 09:34:55 +00:00
echo "Проверка файла $FILE на недоступные ссылки... ";
2017-01-12 23:27:07 +00:00
while read LINK; do
2017-01-13 01:14:17 +00:00
REGEXP_LINK=$(echo $LINK | sed 's/[]\.|$(){}?+*^[]/\\&/g')
2017-01-12 23:27:07 +00:00
LINK=$(echo "$LINK" | sed -e 's/\[/\\\[/g' -e 's/\]/\\\]/g' -e 's/\&amp;/\&/g')
status=$(curl --insecure -XGET -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36" -m 10 -L -s --head -w %{http_code} $LINK -o /dev/null)
expectedStatus=$(grep -oP "[^,]+,$REGEXP_LINK$" files/known_url.csv | cut -d',' -f1)
2017-01-12 23:27:07 +00:00
if [ -z "$expectedStatus" ]; then
expectedStatus="200"
fi
2017-01-13 01:24:06 +00:00
if [ "$status" != "$expectedStatus" -a "$status" != "200" ]; then
2017-01-12 23:27:07 +00:00
EXIT_CODE=1
echo "Ссылка $LINK ... недоступна с кодом $status, ожидается $expectedStatus";
echo
2017-01-12 23:27:07 +00:00
fi
done < links
echo
fi
fi
done < changed_files
2016-01-19 08:52:01 +00:00
exit $EXIT_CODE