From 7a0624798fc8d015df9decda458fecf543570f65 Mon Sep 17 00:00:00 2001 From: Hyy2001X <1804430051@qq.com> Date: Wed, 6 Oct 2021 22:56:26 +0800 Subject: [PATCH] =?UTF-8?q?V6.6.4=20=E6=B7=BB=E5=8A=A0=E5=9B=BA=E4=BB=B6?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E4=BA=BA=E6=95=B0=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Scripts/AutoUpdate.sh | 92 +++++++++++++++++++------------------------ 1 file changed, 41 insertions(+), 51 deletions(-) diff --git a/Scripts/AutoUpdate.sh b/Scripts/AutoUpdate.sh index 8f912f5..a250069 100755 --- a/Scripts/AutoUpdate.sh +++ b/Scripts/AutoUpdate.sh @@ -3,7 +3,7 @@ # AutoUpdate for Openwrt # Dependences: bash wget-ssl/wget/uclient-fetch curl openssl jsonfilter -Version=V6.6.3 +Version=V6.6.4 function TITLE() { clear && echo "Openwrt-AutoUpdate Script by Hyy2001 ${Version}" @@ -35,9 +35,9 @@ function SHELL_HELP() { 其他参数: -B, --boot-mode 指定 x86 设备下载 引导的固件 (e.g. UEFI Legacy) -C 更改 Github 地址为提供的 - -H, --help 打印 AutoUpdate 帮助信息 - -L, --log < | del> <打印 | 删除> AutoUpdate 历史运行日志 - --log --path 更改 AutoUpdate 运行日志路径为提供的绝对路径 + --help 打印 AutoUpdate 帮助信息 + --log < | del> <打印 | 删除> AutoUpdate 历史运行日志 + --log --path 更改 AutoUpdate 运行日志路径为提供的绝对路径 -O 打印云端可用固件名称 -P 使用 镜像加速 * --backup --path 备份当前系统配置文件并移动到提供的绝对路径 (可选) @@ -111,11 +111,6 @@ function CHECK_ENV() { } function EXIT() { - case $1 in - 1) - REMOVE_CACHE - ;; - esac LOGGER "[${COMMAND}] 运行结束 $1" exit } @@ -155,7 +150,7 @@ function ECHO() { } function LOGGER() { - if [[ ! $* =~ (-H|--help|-L|--log) ]];then + if [[ ! $* =~ (--help|--log) ]];then [[ ! -d ${Log_Path} ]] && mkdir -p ${Log_Path} [[ ! -f ${Log_Path}/AutoUpdate.log ]] && touch ${Log_Path}/AutoUpdate.log echo "[$(date "+%Y-%m-%d-%H:%M:%S")] [$$] $*" >> ${Log_Path}/AutoUpdate.log @@ -388,12 +383,13 @@ function CHECK_TIME() { } function ANALYSIS_API() { - local url name date size version + local url name date size version count local API_Dump=${Running_Path}/API_Dump [[ $(CHECK_TIME ${API_File} 1) == false ]] && { DOWNLOADER --path ${Running_Path} --file-name API_Dump --dl ${DOWNLOADERS} --url "$(URL_X ${Github_Release}/API G@@1 F@@1) ${Github_API}@@1 " --no-url-name --timeout 3 --type 固件信息 --quiet [[ ! $? == 0 || -z $(cat ${API_Dump} 2> /dev/null) ]] && { ECHO r "Github API 请求错误,请检查网络后重试!" + RM ${API_File} EXIT 1 } RM ${API_File} && touch -a ${API_File} @@ -407,16 +403,18 @@ function ANALYSIS_API() { url=$(jsonfilter -e '@["assets"]' < ${API_Dump} | jsonfilter -e '@['"""$i"""'].browser_download_url' 2> /dev/null) size=$(jsonfilter -e '@["assets"]' < ${API_Dump} | jsonfilter -e '@['"""$i"""'].size' 2> /dev/null | awk '{a=$1/1048576} {printf("%.2f\n",a)}') date=$(echo ${version} | cut -d '-' -f2) - printf "%-75s %-20s %-10s %-15s %s\n" ${name} ${version} ${date} ${size}MB ${url} >> ${API_File} + count=$(jsonfilter -e '@["assets"]' < ${API_Dump} | jsonfilter -e '@['"""$i"""'].download_count' 2> /dev/null) + printf "%-5s %-75s %-20s %-10s %-15s %s\n" ${count} ${name} ${version} ${date} ${size}MB ${url} >> ${API_File} fi i=$(($i + 1)) done } awk -F ' ' '{print NF}' ${API_File} | while read X;do - [[ ${X} != 5 ]] && LOGGER "[ANALYSIS_API] API 解析异常: ${X}" + [[ ${X} != 6 ]] && LOGGER "[ANALYSIS_API] API 解析异常: ${X}" done [[ -z $(cat ${API_File} 2> /dev/null) ]] && { ECHO r "Github API 解析失败!" + RM ${API_File} EXIT 1 } || LOGGER "[ANALYSIS_API] Github API 解析成功!" } @@ -431,46 +429,30 @@ function GET_CLOUD_INFO() { Info=$(grep "AutoBuild-${OP_REPO_NAME}-${TARGET_PROFILE}" ${API_File} | grep "${x86_Boot}" | uniq) shift else - Info=$(grep "AutoBuild-${OP_REPO_NAME}-${TARGET_PROFILE}" ${API_File} | grep "${x86_Boot}" | awk 'BEGIN {MAX = 0} {if ($3+0 > MAX+0) {MAX=$3 ;content=$0} } END {print content}') + Info=$(grep "AutoBuild-${OP_REPO_NAME}-${TARGET_PROFILE}" ${API_File} | grep "${x86_Boot}" | awk 'BEGIN {MAX = 0} {if ($4+0 > MAX+0) {MAX=$4 ;content=$0} } END {print content}') fi case "$1" in - name) + count) echo "${Info}" | awk '{print $1}' ;; - version) + name) echo "${Info}" | awk '{print $2}' ;; - date) + version) echo "${Info}" | awk '{print $3}' ;; - size) + date) echo "${Info}" | awk '{print $4}' ;; - url) + size) echo "${Info}" | awk '{print $5}' ;; + url) + echo "${Info}" | awk '{print $6}' + ;; esac } -function CHECK_UPDATES() { - local Version - Version="$(GET_CLOUD_INFO version)" - [[ $(FW_VERSION_CHECK ${Version}) == false ]] && { - ECHO r "固件版本合法性校验失败!" - EXIT 1 - } - [[ ${Version} == ${CURRENT_Version} ]] && { - CURRENT_Type="${Yellow} [已是最新]${White}" - Upgrade_Stopped=1 - } || { - [[ $(echo ${Version} | cut -d "-" -f2) -gt $(echo ${CURRENT_Version} | cut -d "-" -f2) ]] && CURRENT_Type="${Green} [可更新]${White}" - [[ $(echo ${Version} | cut -d "-" -f2) -lt $(echo ${CURRENT_Version} | cut -d "-" -f2) ]] && { - CHECKED_Type="${Red} [旧版本]${White}" - Upgrade_Stopped=2 - } - } -} - function UPGRADE() { TITLE [[ $* =~ -f && $* =~ -F ]] && SHELL_HELP @@ -559,18 +541,24 @@ function UPGRADE() { fi ECHO "正在检查版本更新 ..." ANALYSIS_API - CHECK_UPDATES CLOUD_FW_Version="$(GET_CLOUD_INFO version)" CLOUD_FW_Name="$(GET_CLOUD_INFO name)" + CLOUD_FW_Count="$(GET_CLOUD_INFO count)" CLOUD_FW_Size="$(GET_CLOUD_INFO size)" CLOUD_FW_Url="$(GET_CLOUD_INFO url)" [[ -z ${CLOUD_FW_Name} ]] && { - ECHO r "云端固件名称获取失败!" + ECHO r "云端固件信息获取失败!" EXIT 1 } - [[ -z ${CLOUD_FW_Version} ]] && { - ECHO r "云端固件版本获取失败!" - EXIT 1 + [[ ${CLOUD_FW_Version} == ${CURRENT_Version} ]] && { + CURRENT_Type="${Yellow} [已是最新]${White}" + Upgrade_Stopped=1 + } || { + [[ $(echo ${CLOUD_FW_Version} | cut -d "-" -f2) -gt $(echo ${CURRENT_Version} | cut -d "-" -f2) ]] && CURRENT_Type="${Green} [可更新]${White}" + [[ $(echo ${CLOUD_FW_Version} | cut -d "-" -f2) -lt $(echo ${CURRENT_Version} | cut -d "-" -f2) ]] && { + CHECKED_Type="${Red} [旧版本]${White}" + Upgrade_Stopped=2 + } } cat <