diff --git a/Lanit/script.sh b/Lanit/script.sh new file mode 100644 index 0000000..5d1c62d --- /dev/null +++ b/Lanit/script.sh @@ -0,0 +1,171 @@ +#!/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") Тест запущен!" >> "$PWD/$userName/$alias/Test$i/$(date "+%d.%m.%Y").log" + sleep 5 + echo "$(date "+%d.%m.%Y") Тест завершён!" >> "$PWD/$userName/$alias/Test$i/$(date "+%d.%m.%Y").log" + sleep 5 +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 + echo "=====$(basename "$(dirname "$file")")=====" >> "$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] Скрипт отработал!" \ No newline at end of file diff --git a/Lanit/script_1.sh b/Lanit/script_1.sh new file mode 100644 index 0000000..cf505ea --- /dev/null +++ b/Lanit/script_1.sh @@ -0,0 +1,150 @@ +#!/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") Тест запущен!" >> "$PWD/$userName/$alias/Test$i/$(date "+%d.%m.%Y").log" + sleep 5 + echo "$(date "+%d.%m.%Y") Тест завершён!" >> "$PWD/$userName/$alias/Test$i/$(date "+%d.%m.%Y").log" + sleep 5 +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() { +echo "[Ok]" +} + +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 +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] Скрипт отработал!" \ No newline at end of file