Răsfoiți Sursa

fixed repo for ROS 7

Dmitriev Roman 3 ani în urmă
părinte
comite
60eeaa14d2
1 a modificat fișierele cu 40 adăugiri și 23 ștergeri
  1. 40 23
      sync_mikrotik_repo.sh

+ 40 - 23
sync_mikrotik_repo.sh

@@ -1,5 +1,9 @@
 #!/bin/bash
 
+#wget path & opts
+wget_opts="-q -nc"
+WGET="/bin/wget"
+
 #path for you repo
 TARGET_DIR="/mnt/mirror/routeros"
 
@@ -8,23 +12,17 @@ TARGET_DIR="/mnt/mirror/routeros"
 #stable=>"6" lts=>"6fix"
 versions6=("6" "6fix")
 
-#ROS7
-versions7=("7")
+# ROS 7
+versions7=("stable")
 
 #needed architecture's
 firmware_arch=("arm" "arm64" "mipsbe" "mmips" "ppc" "smips" "tile" "x86")
 
-#path to wget
-WGET="/bin/wget"
-
 ##################################### Main ###################################################
 
 #always sync packages
 force=$1
 
-#wget options
-wget_opts="-q -nc"
-
 if [ -n "${force}" ]; then
     echo "Force flag for download packages found!"
     fi
@@ -38,7 +36,8 @@ echo "Get latest release"
 ${WGET} ${wget_opts}  "http://upgrade.mikrotik.com/routeros/LATEST.${firmware_version}" -O "${TARGET_DIR}/LATEST.${firmware_version}.new"
 ret=$?
 if [ ${ret} -ne 0 ]; then
-    echo "Error get release version for ${firmware_version}"
+    [ -e "${TARGET_DIR}/LATEST.${firmware_version}.new"] && rm -f "${TARGET_DIR}/LATEST.${firmware_version}.new"
+    echo "Error get release 6 version ${firmware_version}"
     exit 100
     fi
 
@@ -76,6 +75,7 @@ if [ ${ret} -ne 0 ]; then
     echo "Error get changelog for ${new_version}. Skip release."
     continue
     fi
+
 download_error=
 for file_arch in "${firmware_arch[@]}"; do
     #packages
@@ -122,29 +122,46 @@ ${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/netins
 ${WGET} ${wget_opts} "https://mt.lv/winbox" -O "${TARGET_DIR}/${new_version}/winbox.exe"
 ${WGET} ${wget_opts} "https://mt.lv/winbox64" -O "${TARGET_DIR}/${new_version}/winbox64.exe"
 
-rm -f "${TARGET_DIR}/LATEST.${firmware_version}"
+[ -e "${TARGET_DIR}/LATEST.${firmware_version}" ] && rm -f "${TARGET_DIR}/LATEST.${firmware_version}"
 mv "${TARGET_DIR}/LATEST.${firmware_version}.new" "${TARGET_DIR}/LATEST.${firmware_version}"
+
+echo "ROS 6 version ${new_version} downloaded."
 done
 
 ###################################### ROS 7 ##################################################
 
 echo "Check ROS 7 releases"
+
+#get latest release for ROS7
+${WGET} ${wget_opts}  "http://upgrade.mikrotik.com/routeros/LATEST.7" -O "${TARGET_DIR}/LATEST.7.new"
+ret=$?
+if [ ${ret} -ne 0 ]; then
+    echo "Error get release 7 version"
+    [ -e "${TARGET_DIR}/LATEST.7.new" ] && rm -f "${TARGET_DIR}/LATEST.7.new"
+    exit 100
+    fi
+[ -e "${TARGET_DIR}/LATEST.7" ] && rm -f "${TARGET_DIR}/LATEST.7"
+mv "${TARGET_DIR}/LATEST.7.new" "${TARGET_DIR}/LATEST.7"
+
 for firmware_version in "${versions7[@]}"; do
+
 echo "Analyze version ${firmware_version}"
 echo "Get latest release"
-${WGET} ${wget_opts}  "http://upgrade.mikrotik.com/routeros/LATEST.${firmware_version}" -O "${TARGET_DIR}/LATEST.${firmware_version}.new"
+
+${WGET} ${wget_opts}  "http://upgrade.mikrotik.com/routeros/NEWEST7.${firmware_version}" -O "${TARGET_DIR}/NEWEST7.${firmware_version}.new"
 ret=$?
 if [ ${ret} -ne 0 ]; then
-    echo "Error get release version for ${firmware_version}"
+    echo "Error get newest release 7 version ${firmware_version}"
+    [ -e "${TARGET_DIR}/NEWEST7.${firmware_version}.new" ] && rm -f "${TARGET_DIR}/NEWEST7.${firmware_version}.new"
     exit 100
     fi
 
-old_version=$(cat "${TARGET_DIR}/LATEST.${firmware_version}" | head -1 | awk '{ print $1 }')
-old_timestamp=$(cat "${TARGET_DIR}/LATEST.${firmware_version}" | head -1 | awk '{ print $2 }')
+old_version=$(cat "${TARGET_DIR}/NEWEST7.${firmware_version}" | head -1 | awk '{ print $1 }')
+old_timestamp=$(cat "${TARGET_DIR}/NEWEST7.${firmware_version}" | head -1 | awk '{ print $2 }')
 old_release_date=$(date -d @${old_timestamp})
 
-new_version=$(cat "${TARGET_DIR}/LATEST.${firmware_version}.new" | head -1 | awk '{ print $1 }')
-new_timestamp=$(cat "${TARGET_DIR}/LATEST.${firmware_version}.new" | head -1 | awk '{ print $2 }')
+new_version=$(cat "${TARGET_DIR}/NEWEST7.${firmware_version}.new" | head -1 | awk '{ print $1 }')
+new_timestamp=$(cat "${TARGET_DIR}/NEWEST7.${firmware_version}.new" | head -1 | awk '{ print $2 }')
 new_release_date=$(date -d @${new_timestamp})
 
 version_changed=1
@@ -154,8 +171,8 @@ if [ "x${new_version}" == "x${old_version}" -a "x${old_timestamp}" == "x${new_ti
 
 if [ "x${force}" == "x" -a "x${version_changed}" == "x" ]; then
     echo "Version don't changed. Next."
-    rm -f "${TARGET_DIR}/LATEST.${firmware_version}.new"
-    continue
+    [ -e "${TARGET_DIR}/NEWEST7.${firmware_version}.new" ] && rm -f "${TARGET_DIR}/NEWEST7.${firmware_version}.new"
+    break
     fi
 
 echo "Found version: ${new_version} from ${new_release_date}"
@@ -198,9 +215,9 @@ for file_arch in "${firmware_arch[@]}"; do
     done
 
 if [ -n "${download_err}" ]; then
-    echo "Found errors by download packages. Skip release"
-    rm -f "${TARGET_DIR}/LATEST.${firmware_version}.new"
+    echo "Found errors by download packages for ${new_version} ${firmware_version}. Skip release"
     download_err=
+    [ -e "${TARGET_DIR}/NEWEST7.${firmware_version}.new" ] && rm -f "${TARGET_DIR}/NEWEST7.${firmware_version}.new"
     continue
     fi
 
@@ -219,10 +236,10 @@ ${WGET} ${wget_opts} "http://upgrade.mikrotik.com/routeros/${new_version}/netins
 ${WGET} ${wget_opts} "https://mt.lv/winbox" -O "${TARGET_DIR}/${new_version}/winbox.exe"
 ${WGET} ${wget_opts} "https://mt.lv/winbox64" -O "${TARGET_DIR}/${new_version}/winbox64.exe"
 
-rm -f "${TARGET_DIR}/LATEST.${firmware_version}"
-mv "${TARGET_DIR}/LATEST.${firmware_version}.new" "${TARGET_DIR}/LATEST.${firmware_version}"
-echo "Version ${new_version} downloaded."
+[ -e "${TARGET_DIR}/NEWEST7.${firmware_version}" ] && rm -f "${TARGET_DIR}/NEWEST7.${firmware_version}"
+mv "${TARGET_DIR}/NEWEST7.${firmware_version}.new" "${TARGET_DIR}/NEWEST7.${firmware_version}"
 
+echo "ROS 7 version ${new_version} downloaded successfully."
 done
 
 exit