SH update
This commit is contained in:
101
RUN.sh
101
RUN.sh
@@ -1,3 +1,102 @@
|
||||
#!/bin/bash
|
||||
|
||||
"$(pwd)/.venv/bin/streamlit" run "$(pwd)/visual.py"
|
||||
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
|
||||
0
get_data.py
Normal file → Executable file
0
get_data.py
Normal file → Executable file
Reference in New Issue
Block a user