From ca7cd72b74c7b02b62be94cd02847e17765e970a Mon Sep 17 00:00:00 2001 From: Alexey Barabanov Date: Mon, 20 Oct 2025 18:43:53 +0300 Subject: [PATCH] SH update --- RUN.sh | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++- get_data.py | 0 2 files changed, 100 insertions(+), 1 deletion(-) mode change 100644 => 100755 get_data.py diff --git a/RUN.sh b/RUN.sh index 81eccd5..0113c68 100755 --- a/RUN.sh +++ b/RUN.sh @@ -1,3 +1,102 @@ #!/bin/bash -"$(pwd)/.venv/bin/streamlit" run "$(pwd)/visual.py" \ No newline at end of file +show_help() { + echo "Использование: $0 -t <домашняя команда>" + echo " -t Домашняя команда" + echo " -h Показать эту справку" + echo "" + echo "Пример: $0 -t \"cska\"" + exit 0 +} + +# Определение IP адреса +if [[ "$(uname -s)" != "Darwin" ]]; then + ip_address=$(ip a 2>/dev/null | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | head -n1) +else + ip_address=$(ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | head -n1) +fi + +echo "IP: $ip_address" + +# База данных хостов в виде пар IP-команда +hosts=( + "10.10.35.21:cska" + "10.10.35.22:Kuban" + "10.10.35.23:uralmash" + "10.10.35.24:betcity parma" + "10.10.35.25:avtodor" + "10.10.35.26:zenit" + "10.10.35.27:samara" + "10.10.35.28:mba-mai" + "10.10.35.29:Pari Nizhny Novgorod" + "10.10.35.30:unics" +) + +# Определение команды по IP +detected_team="" +for host in "${hosts[@]}"; do + host_ip="${host%%:*}" + host_team="${host#*:}" + if [[ "$ip_address" == "$host_ip" ]]; then + detected_team="$host_team" + break + fi +done + +# Обработка аргументов командной строки +team="" +while getopts "t:h" opt; do + case $opt in + t) team="$OPTARG" ;; + h) show_help ;; + *) echo "Неверный аргумент"; exit 1 ;; + esac +done + +# Определение финальной команды (приоритет у аргумента, затем у автоопределения) +if [[ -n "$team" ]]; then + final_team="$team" + echo "Используется команда из аргумента: $final_team" +elif [[ -n "$detected_team" ]]; then + final_team="$detected_team" + echo "Используется автоопределенная команда: $final_team" +else + echo "Ошибка: Не удалось определить команду. Укажите явно через -t или проверьте IP адрес" + echo "Доступные команды:" + for ip in "${!hosts[@]}"; do + echo " $ip: ${hosts[$ip]}" + done + exit 1 +fi + +# Проверка существования файлов +if [[ ! -f "$(pwd)/.venv/bin/streamlit" ]]; then + echo "Ошибка: streamlit не найден в $(pwd)/.venv/bin/streamlit" + exit 1 +fi + +if [[ ! -f "$(pwd)/visual.py" ]]; then + echo "Ошибка: visual.py не найден в $(pwd)/visual.py" + exit 1 +fi + +if [[ ! -f "$(pwd)/get_data.py" ]]; then + echo "Ошибка: get_data.py не найден в $(pwd)/get_data.py" + exit 1 +fi + +#Запуск сбора данных +echo "Запуск get_data.py..." +"$(pwd)/.venv/bin/python $(pwd)/get_data.py" --team "$final_team" & + +# Небольшая задержка перед запуском второго процесса +sleep 2 + +# Запуск веб-морды +echo "Запуск приложения для команды: $final_team" +echo "Запуск streamlit..." +"$(pwd)/.venv/bin/streamlit" run "$(pwd)/visual.py" + +# Ожидание завершения процессов +echo "Оба процесса запущены. Для остановки нажмите Ctrl+C" +wait \ No newline at end of file diff --git a/get_data.py b/get_data.py old mode 100644 new mode 100755