RG/lanit/script.sh
2026-09-17 13:31:56 +04:00

171 lines
4.8 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
pseudo_run_test() {
if [ $numTest -gt 1 ];
then
echo "[Ok] Тесты запущены!"
else
echo "[Ok] Тест запущен!"
fi
for ((i=1; i<=numTest; i++))
do
echo "$(date "+%d.%m.%Y %H:%M:%S") Тест запущен!" >> "$PWD/$userName/$alias/Test$i/$(date "+%d.%m.%Y").log"
echo "$(date "+%d.%m.%Y %H:%M:%S") Тест завершён!" >> "$PWD/$userName/$alias/Test$i/$(date "+%d.%m.%Y").log"
done
if [ $numTest -gt 1 ];
then
echo "[Ok] Тесты завершены!"
else
echo "[Ok] Тест завершён!"
fi
}
read_config() {
err=0
while IFS= read -r line
do
if [[ "$line" =~ "userName=" ]];
then
userName=${line:9}
userName=$(echo "$userName" | tr -d "\r\n")
if [ -z "$userName" ] || [[ "$userName" =~ [А-Яа-я\:\;\<\>\/\\\*\?\|\"\'\.\$\#\(\)\ \&] ]];
then
echo "[ERROR] Некорректный USERNAME в файле $name_config!"
let err++
fi
fi
if [[ "$line" =~ "alias=" ]];
then
alias=${line:6}
alias=$(echo "$alias" | tr -d "\r\n")
if [ -z "$alias" ] || [[ "$alias" =~ [А-Яа-я\:\;\<\>\/\\\*\?\|\"\'\.\$\#\(\)\ \&] ]];
then
echo "[ERROR] Некорректный alias в файле $name_config!"
let err++
fi
fi
if [[ "$line" =~ "numTest=" ]];
then
numTest=${line:8}
numTest=$(echo "$numTest" | tr -d "\r\n")
if [[ $numTest != [0-9]* ]];
then
echo "[ERROR] Некорректный numTest в файле $name_config!"
let err++
fi
fi
done <"$name_config"
if [ $err -gt 0 ];
then
echo "[ERROR] Файл $name_config не считан!"
exit 1
else
echo "[Ok] Файл $name_config считан!"
fi
}
merg_and_del() {
if [ -d "$PWD/$userName/$alias/" ]
then
touch "$PWD/$userName/$alias/all_logs_$alias.log"
find "$PWD/$userName/$alias/" -type f -name "*.log" \
-not -path "$PWD/$userName/$alias/all_logs_$alias.log" \
| sort | while IFS= read -r file; do
name=$(basename "$(dirname "$file")")
name="${name/Test/Test }"
echo "=====$name=====" >> "$PWD/$userName/$alias/all_logs_$alias.log"
cat "$file" >> "$PWD/$userName/$alias/all_logs_$alias.log"
done
rm -rf "$PWD/$userName/$alias/"Test*
fi
echo "[Ok] Объединение log файлов и удаление артефактов тестирования завершено!"
}
if [ -z "$1" ];
then
echo "Добро пожаловать!"
Done="No"
while [ "$Done" = "No" ]
do
read -p "Пожалуйста введите ваш USERNAME (A-Za-z0-9): " userName
if [ -z "$userName" ] || [[ "$userName" =~ [А-Яа-я\:\;\<\>\/\\\*\?\|\"\'\.\$\#\(\)\ \&] ]];
then
echo -e "\n[ERROR] Некорректный USERNAME!"
else
Done="Yes"
fi
done
Done="No"
while [ "$Done" = "No" ]
do
read -p "Пожалуйста введите название проекта (alias:A-Za-z0-9): " alias
if [ -z "$alias" ] || [[ "$alias" =~ [А-Яа-я\:\;\<\>\/\\\*\?\|\"\'\.\$\#\(\)\ \&] ]];
then
echo -e "\n[ERROR] Некорректный alias!"
else
Done="Yes"
fi
done
Done="No"
while [ "$Done" = "No" ]
do
read -p "Пожалуйста введите предполагаемое количество тестов: " numTest
if [[ $numTest != [0-9]* ]]
then
echo -e "\n[ERROR] Введено некоректное значение!"
else
Done="Yes"
fi
done
else
name_config=$1
if [ -f "$name_config" ]
then
read_config "$name_config"
else
echo "[ERROR] Config файл \"$name_config\" не существует!"
exit 1
fi
fi
if ! [ -d "$PWD/$userName/$alias" ]
then
mkdir -p $userName/$alias
if [ -d "$PWD/$userName/$alias" ];
then
echo "[Ok] Директория под проект создана!"
else
echo "[ERROR] Директория для проекта не создана!"
exit 1
fi
else
echo -e "[WARNING] Директория для проекта \"$alias\" уже существует!\nПроверьте данные, при необходимости перезапустите скрипт!"
exit 1
fi
for ((i=1; i<=numTest; i++))
do
mkdir -p "$userName/$alias/Test$i"
if [ -d "$PWD/$userName/$alias/Test$i" ];
then
echo "[Ok] Директория под Тест $i создана!"
touch "$PWD/$userName/$alias/Test$i/$(date "+%d.%m.%Y").log"
if [ -f "$PWD/$userName/$alias/Test$i/$(date "+%d.%m.%Y").log" ]
then
echo "[Ok] Log файл с информацией о $i тесте создан!"
echo "$(date "+%d.%m.%Y %H:%M:%S") Log файл с информацией о $i тесте создан!" >> "$PWD/$userName/$alias/Test$i/$(date "+%d.%m.%Y").log"
else
echo "[ERROR] Ошибка создания Log файла!"
exit 1
fi
else
echo "[ERROR] Директория под Тест $i не создана!"
exit 1
fi
done
pseudo_run_test
merg_and_del
echo -e "\n[Ok] Скрипт отработал!"