Browse Source

added support ROS7 long-term

Dmitriev Roman 3 months ago
parent
commit
4c3c3e3bd7
5 changed files with 33 additions and 12 deletions
  1. 1 1
      config.sh
  2. 2 2
      download_ros.sh
  3. 8 2
      ros6_functions.sh
  4. 17 4
      ros7_functions.sh
  5. 5 3
      sync_mikrotik_repo.sh

+ 1 - 1
config.sh

@@ -39,7 +39,7 @@ TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
 
 # Версии ROS
 versions6=("6" "6fix")
-versions7=("stable")
+versions7=("stable" "long-term")
 firmware_arch=("arm" "arm64" "mipsbe" "mmips" "ppc" "smips" "tile" "x86")
 
 # Дополнительные файлы для загрузки

+ 2 - 2
download_ros.sh

@@ -52,9 +52,9 @@ download_specific_version() {
         "ros7")
             local user_agent_info=$(get_ros7_user_agent "$version")
             if [ "${user_agent_info}" == 'after' ]; then
-        	download_specific_ros7 "RouterOS 7.12.1" "$version"
+        	download_specific_ros7_version "7.12.1" "$version"
         	else
-        	download_specific_ros7 "RouterOS 7.10" "$version"
+        	download_specific_ros7_version "7.10" "$version"
 		fi
             ;;
     esac

+ 8 - 2
ros6_functions.sh

@@ -9,8 +9,14 @@ download_ros6() {
     log "Checking ROS 6 releases"
 
     # Get upgrade version to ROS 7
-    $WGET $WGET_OPTS "http://upgrade.mikrotik.com/routeros/NEWEST6.upgrade?version=6.49.13" -O "${TARGET_DIR}/NEWEST6.upgrade"
-    check_error $? "Failed to download NEWEST6.upgrade" || return 1
+    [ -e "${TARGET_DIR}/NEWEST6.upgrade.new" ] && rm -f "${TARGET_DIR}/NEWEST6.upgrade.new"
+    $WGET $WGET_OPTS "http://upgrade.mikrotik.com/routeros/NEWEST6.upgrade?version=6.49.13" -O "${TARGET_DIR}/NEWEST6.upgrade.new"
+    if ! check_error $? "Failed to download NEWEST6.upgrade"; then
+	rm -f "${TARGET_DIR}/NEWEST6.upgrade.new"
+	else
+	[ -e "${TARGET_DIR}/NEWEST6.upgrade" ] && rm "${TARGET_DIR}/NEWEST6.upgrade"
+	mv "${TARGET_DIR}/NEWEST6.upgrade.new" "${TARGET_DIR}/NEWEST6.upgrade"
+	fi
 
     for firmware_version in "${versions6[@]}"; do
         log "Analyzing version ${firmware_version}"

+ 17 - 4
ros7_functions.sh

@@ -2,7 +2,8 @@
 
 # Функция загрузки ROS 7
 download_ros7() {
-    local user_agent=$1
+    local ros_version=$1
+    local user_agent="RouterOS $1"
     local version_prefix=$2
     local description=$3
     local force=$4
@@ -11,9 +12,13 @@ download_ros7() {
     log "Checking ${description}"
 
     for firmware_version in "${versions7[@]}"; do
+	#skip check long-term before 7.12.1
+        if [[ -z ${version_prefix} && "${firmware_version}" == "long-term" ]]; then
+	    continue
+	    fi
         log "Analyzing version ${firmware_version}"
 
-        $WGET $WGET_OPTS -U "$user_agent" "http://upgrade.mikrotik.com/routeros/NEWEST${version_prefix}7.${firmware_version}" -O "${TARGET_DIR}/NEWEST${version_prefix}7.${firmware_version}.new"
+        $WGET $WGET_OPTS -U "$user_agent" "http://upgrade.mikrotik.com/routeros/NEWEST${version_prefix}7.${firmware_version}?version=${ros_version}" -O "${TARGET_DIR}/NEWEST${version_prefix}7.${firmware_version}.new"
         if ! check_error $? "Failed to get NEWEST${version_prefix}7.${firmware_version}"; then
             continue
         fi
@@ -40,7 +45,7 @@ download_ros7() {
         log "New version found: ${new_version}"
 
         # Использование единой функции загрузки
-        if download_specific_ros7_version "${user_agent}" "${new_version}"; then
+        if download_specific_ros7_version "${ros_version}" "${new_version}"; then
             mv "${TARGET_DIR}/NEWEST${version_prefix}7.${firmware_version}.new" "${TARGET_DIR}/NEWEST${version_prefix}7.${firmware_version}"
             log_success "ROS 7 version ${new_version} downloaded successfully."
         else
@@ -52,7 +57,8 @@ download_ros7() {
 
 # Функция загрузки конкретной версии ROS 7
 download_specific_ros7_version() {
-    local user_agent=$1
+    local ros_version=$1
+    local user_agent="RouterOS $1"
     local version=$2
     local file_arch ros_filename download_err=0
 
@@ -61,9 +67,15 @@ download_specific_ros7_version() {
     mkdir -p "${TARGET_DIR}/${version}"
     cd "${TARGET_DIR}/${version}" || return 1
 
+    [ -e "CHANGELOG" ] && rm -f CHANGELOG
     $WGET $WGET_OPTS -U "$user_agent" "http://upgrade.mikrotik.com/routeros/${version}/CHANGELOG"
     check_error $? "Failed to download CHANGELOG" || return 1
 
+    # packages.csv
+    [ -e "packages.csv" ] && rm -f packages.csv
+    $WGET $WGET_OPTS -U "$user_agent" "http://upgrade.mikrotik.com/routeros/${version}/packages.csv"
+    check_error $? "Failed to download packages.csv"
+
     for file_arch in "${firmware_arch[@]}"; do
         # Packages
         $WGET $WGET_OPTS -U "$user_agent" "http://upgrade.mikrotik.com/routeros/${version}/all_packages-${file_arch}-${version}.zip"
@@ -85,6 +97,7 @@ download_specific_ros7_version() {
             break
         fi
 
+
         local user_agent_info=$(get_ros7_user_agent "$version")
         if [ "${file_arch}" != "x86" ] && [ "${user_agent_info}" == 'after' ]; then
             #download wireless after 7.12

+ 5 - 3
sync_mikrotik_repo.sh

@@ -1,7 +1,9 @@
 #!/bin/bash
 
 # Импорт конфигурации и функций
-SCRIPT_DIR="$(dirname "$0")"
+#SCRIPT_DIR="$(dirname "$0")"
+SCRIPT_DIR="/usr/local/bin"
+
 source "${SCRIPT_DIR}/config.sh"
 source "${SCRIPT_DIR}/functions.sh"
 source "${SCRIPT_DIR}/ros6_functions.sh"
@@ -25,8 +27,8 @@ fi
 download_ros6 "$force"
 
 # Загрузка ROS 7 версий
-download_ros7 "RouterOS 7.10" "" "ROS 7 before 7.12.1" "$force"
-download_ros7 "RouterOS 7.12.1" "a" "ROS 7 after 7.12.1" "$force"
+download_ros7 "7.10" "" "ROS 7 before 7.12.1" "$force"
+download_ros7 "7.12.1" "a" "ROS 7 after 7.12.1" "$force"
 
 # Загрузка Winbox
 download_winbox