attempt to fix mtk (#9434)
This commit is contained in:
parent
0cbce2287d
commit
f60493a862
@ -237,31 +237,62 @@ function default_settings() {
|
|||||||
|
|
||||||
function get_mikrotik_version() {
|
function get_mikrotik_version() {
|
||||||
local mode="$1"
|
local mode="$1"
|
||||||
|
local rss_url
|
||||||
local tree_name
|
local tree_name
|
||||||
|
|
||||||
|
case "$mode" in
|
||||||
|
s) rss_url="https://cdn.mikrotik.com/routeros/latest-stable.rss" ;;
|
||||||
|
d) rss_url="https://cdn.mikrotik.com/routeros/latest-development.rss" ;;
|
||||||
|
l) rss_url="https://cdn.mikrotik.com/routeros/latest-long-term.rss" ;;
|
||||||
|
t) rss_url="https://cdn.mikrotik.com/routeros/latest-testing.rss" ;;
|
||||||
|
*) return 0 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
local rss_content
|
||||||
|
rss_content=$(curl -fsSL $rss_url 2>/dev/null)
|
||||||
|
if [ -n "$rss_content" ]; then
|
||||||
|
local version
|
||||||
|
version=$(echo "$rss_content" | grep -oP '<title>RouterOS \K[0-9.]+(?= \[)' 2>/dev/null || echo "$rss_content" | sed -n 's/.*<title>RouterOS \([0-9.]\+\) \[.*/\1/p' 2>/dev/null)
|
||||||
|
if [[ "$version" =~ ^[0-9]+\.[0-9]+ ]]; then
|
||||||
|
echo "$version"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
case "$mode" in
|
case "$mode" in
|
||||||
s) tree_name="Stable release tree" ;;
|
s) tree_name="Stable release tree" ;;
|
||||||
d) tree_name="Development release tree" ;;
|
d) tree_name="Development release tree" ;;
|
||||||
l) tree_name="Long-term release tree" ;;
|
l) tree_name="Long-term release tree" ;;
|
||||||
t) tree_name="Testing release tree" ;;
|
t) tree_name="Testing release tree" ;;
|
||||||
*) return 0 ;; # not an error, just no-op
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
local html
|
local html
|
||||||
html=$(curl -fsSL "https://mikrotik.com/download/changelogs") || return 0
|
html=$(curl -fsSL "https://mikrotik.com/download/changelogs" 2>/dev/null)
|
||||||
[ -z "$html" ] && return 0
|
if [ -n "$html" ]; then
|
||||||
|
local start_line
|
||||||
|
start_line=$(echo "$html" | grep -n "$tree_name" | cut -d: -f1 | head -n1)
|
||||||
|
if [[ "$start_line" =~ ^[0-9]+$ ]]; then
|
||||||
|
local line
|
||||||
|
line=$(echo "$html" | tail -n +"$start_line" | grep -m 1 -E "c-(stable|longTerm|testing|development)-v|RouterOS [0-9]+\.[0-9]+" 2>/dev/null)
|
||||||
|
|
||||||
|
local version
|
||||||
|
version=$(echo "$line" | sed -n 's/.*c-[^"]*-v\([0-9_.a-zA-Z-]\+\).*/\1/p' | tr '_' '.' 2>/dev/null)
|
||||||
|
[ -z "$version" ] && version=$(echo "$line" | grep -oP 'RouterOS \K[0-9]+\.[0-9]+(\.[0-9]+)?' 2>/dev/null)
|
||||||
|
|
||||||
|
if [[ "$version" =~ ^[0-9]+\.[0-9]+ ]]; then
|
||||||
|
echo "$version"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
local start_line
|
for minor in $(seq 50 -1 15); do
|
||||||
start_line=$(echo "$html" | grep -n "$tree_name$" | cut -d: -f1 | head -n1)
|
local test_version="7.${minor}"
|
||||||
[[ "$start_line" =~ ^[0-9]+$ ]] || return 0
|
if curl -fsSL -I "https://download.mikrotik.com/routeros/${test_version}/chr-${test_version}.img.zip" 2>/dev/null | grep -q "200 OK"; then
|
||||||
|
echo "$test_version"
|
||||||
local line
|
return 0
|
||||||
line=$( (echo "$html" | tail -n +"$start_line" | grep -m 1 "c-\(stable\|longTerm\|testing\|development\)-v") 2>/dev/null || true)
|
fi
|
||||||
|
done
|
||||||
local version
|
|
||||||
version=$(echo "$line" | sed -n 's/.*c-[^"]*-v\([0-9_.a-zA-Z-]\+\).*/\1/p' | tr '_' '.')
|
|
||||||
|
|
||||||
[[ "$version" =~ ^[0-9]+\.[0-9]+.*$ ]] && echo "$version"
|
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@ -504,8 +535,8 @@ if [ -n "$MIK_VER" ]; then
|
|||||||
msg_ok "Latest stable version: ${CL}${BL}$MIK_VER${CL}."
|
msg_ok "Latest stable version: ${CL}${BL}$MIK_VER${CL}."
|
||||||
else
|
else
|
||||||
msg_error "Could not get latest version"
|
msg_error "Could not get latest version"
|
||||||
msg_ok "Defaulting to version 7.19"
|
msg_ok "Defaulting to version 7.20"
|
||||||
ver="7.19"
|
MIK_VER="7.20"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
URL=https://download.mikrotik.com/routeros/$MIK_VER/chr-$MIK_VER.img.zip
|
URL=https://download.mikrotik.com/routeros/$MIK_VER/chr-$MIK_VER.img.zip
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user