| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #!/bin/bash
- # Импорт конфигурации и функций
- SCRIPT_DIR="$(dirname "$0")"
- source "${SCRIPT_DIR}/config.sh"
- source "${SCRIPT_DIR}/functions.sh"
- source "${SCRIPT_DIR}/ros6_functions.sh"
- source "${SCRIPT_DIR}/ros7_functions.sh"
- # Создаем директорию если нет
- mkdir -p "$TARGET_DIR"
- # Начало лога
- log "Starting RouterOS download script"
- #log "Target directory: $TARGET_DIR"
- ##################################### Main ###################################################
- force=$1
- version=$2
- if [ -n "${force}" ] && [ "${force}" != "force" ]; then
- # Если первый параметр не "force", то это может быть версия
- if [ -z "${version}" ]; then
- version="${force}"
- force=""
- fi
- fi
- if [ -n "${force}" ]; then
- log "Force flag for download packages found!"
- fi
- # Функция для преобразования версии в числовой формат
- version_to_number() {
- local version=$1
- local major=$(echo $version | cut -d. -f1)
- local minor=$(echo $version | cut -d. -f2)
- local patch=$(echo $version | cut -d. -f3)
- echo $((major * 1000000 + minor * 1000 + patch))
- }
- # Функция для определения типа версии и нужного user agent
- get_ros7_user_agent() {
- local version=$1
- local version_num=$(version_to_number "$version")
- local threshold_num=$(version_to_number "7.12.1")
-
- if [ $version_num -ge $threshold_num ]; then
- # Версия равна или выше 7.12.1
- echo "after"
- else
- # Версия ниже 7.12.1
- echo "before"
- fi
- }
- # Функция для загрузки конкретной версии
- download_specific_version() {
- local version=$1
- local version_type=""
-
- if [[ "$version" =~ ^6\. ]]; then
- version_type="ros6"
- elif [[ "$version" =~ ^7\. ]]; then
- version_type="ros7"
- else
- log_error "Unknown version format: $version"
- exit 1
- fi
-
- case $version_type in
- "ros6")
- log "Downloading specific ROS 6 version: $version"
- download_specific_ros6_version "$version"
- ;;
- "ros7")
- log "Downloading specific ROS 7 version: $version"
- local user_agent_info=$(get_ros7_user_agent "$version")
- if [ "${user_agent_info}" == 'after' ]; then
- download_specific_ros7 "RouterOS 7.12.1" "$version"
- else
- download_specific_ros7 "RouterOS 7.10" "$version"
- fi
- ;;
- esac
- }
- if [ -n "${version}" ]; then
- # Загрузка конкретной версии
- download_specific_version "$version"
- else
- # Если версия не передана - не делаем ничего
- log "No version specified. Exiting."
- exit 0
- fi
- log "Script completed successfully"
- exit 0
|