新增参数 -x: 一键更新 AutoUpdate 脚本为最新
This commit is contained in:
parent
251ddd35cf
commit
2c44892495
|
@ -25,6 +25,7 @@ cat <<EOF
|
||||||
-b | -boot [额外参数:<引导方式 UEFI/Legacy>] 指定 x86 设备下载使用 UEFI/Legacy 引导的固件 [危险]
|
-b | -boot [额外参数:<引导方式 UEFI/Legacy>] 指定 x86 设备下载使用 UEFI/Legacy 引导的固件 [危险]
|
||||||
|
|
||||||
其他:
|
其他:
|
||||||
|
-x | 更新 AutoUpdate.sh 脚本
|
||||||
-l | -list 列出设备信息
|
-l | -list 列出设备信息
|
||||||
-d | -del 清除固件下载缓存
|
-d | -del 清除固件下载缓存
|
||||||
-h | -help 打印帮助信息
|
-h | -help 打印帮助信息
|
||||||
|
@ -36,20 +37,22 @@ exit 0
|
||||||
List_Info() {
|
List_Info() {
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
|
||||||
|
AutoUpdate 版本: ${Version}
|
||||||
/overlay 可用: ${Overlay_Available}
|
/overlay 可用: ${Overlay_Available}
|
||||||
/tmp 可用: ${TMP_Available}M
|
/tmp 可用: ${TMP_Available}M
|
||||||
固件下载位置: /tmp/Downloads
|
固件下载位置: ${Download_Path}
|
||||||
当前设备: ${CURRENT_Device}
|
当前设备: ${CURRENT_Device}
|
||||||
默认设备: ${DEFAULT_Device}
|
默认设备: ${DEFAULT_Device}
|
||||||
当前固件版本: ${CURRENT_Version}
|
当前固件版本: ${CURRENT_Version}
|
||||||
固件名称: AutoBuild-${CURRENT_Device}-${CURRENT_Version}${Firmware_SFX}
|
固件名称: AutoBuild-${CURRENT_Device}-${CURRENT_Version}${Firmware_SFX}
|
||||||
Github 地址: ${Github}
|
Github: ${Github}
|
||||||
解析 API 地址: ${Github_Tags}
|
Github Raw: ${Github_Raw}
|
||||||
|
解析 API: ${Github_Tags}
|
||||||
固件下载地址: ${Github_Download}
|
固件下载地址: ${Github_Download}
|
||||||
作者/仓库: ${Author}"
|
作者/仓库: ${Author}
|
||||||
固件格式: ${Firmware_SFX}
|
固件格式: ${Firmware_SFX}
|
||||||
EOF
|
EOF
|
||||||
[[ ${DEFAULT_Device} == "x86_64" ]] && {
|
[[ "${DEFAULT_Device}" == x86_64 ]] && {
|
||||||
echo "EFI 引导: ${EFI_Mode}"
|
echo "EFI 引导: ${EFI_Mode}"
|
||||||
echo "固件压缩: ${Compressed_Firmware}"
|
echo "固件压缩: ${Compressed_Firmware}"
|
||||||
}
|
}
|
||||||
|
@ -92,11 +95,14 @@ TIME() {
|
||||||
}
|
}
|
||||||
Input_Option=$1
|
Input_Option=$1
|
||||||
Input_Other=$2
|
Input_Other=$2
|
||||||
|
Download_Path="/tmp/Downloads"
|
||||||
opkg list | awk '{print $1}' > /tmp/Package_list
|
opkg list | awk '{print $1}' > /tmp/Package_list
|
||||||
CURRENT_Version="$(awk 'NR==1' /etc/openwrt_info)"
|
CURRENT_Version="$(awk 'NR==1' /etc/openwrt_info)"
|
||||||
Github="$(awk 'NR==2' /etc/openwrt_info)"
|
Github="$(awk 'NR==2' /etc/openwrt_info)"
|
||||||
Github_Download="${Github}/releases/download/AutoUpdate"
|
Github_Download="${Github}/releases/download/AutoUpdate"
|
||||||
Author="${Github##*com/}"
|
Author="${Github##*com/}"
|
||||||
|
Github_Raw="https://raw.githubusercontent.com/${Author}/master"
|
||||||
|
CLOUD_Script="${Github_Raw}/Scripts/AutoUpdate.sh"
|
||||||
Github_Tags="https://api.github.com/repos/${Author}/releases/latest"
|
Github_Tags="https://api.github.com/repos/${Author}/releases/latest"
|
||||||
DEFAULT_Device="$(awk 'NR==3' /etc/openwrt_info)"
|
DEFAULT_Device="$(awk 'NR==3' /etc/openwrt_info)"
|
||||||
Firmware_Type="$(awk 'NR==4' /etc/openwrt_info)"
|
Firmware_Type="$(awk 'NR==4' /etc/openwrt_info)"
|
||||||
|
@ -104,6 +110,7 @@ _PROXY_URL="https://download.fastgit.org"
|
||||||
TMP_Available="$(df -m | grep "/tmp" | awk '{print $4}' | awk 'NR==1' | awk -F. '{print $1}')"
|
TMP_Available="$(df -m | grep "/tmp" | awk '{print $4}' | awk 'NR==1' | awk -F. '{print $1}')"
|
||||||
Overlay_Available="$(df -h | grep ":/overlay" | awk '{print $4}' | awk 'NR==1')"
|
Overlay_Available="$(df -h | grep ":/overlay" | awk '{print $4}' | awk 'NR==1')"
|
||||||
Retry_Times=4
|
Retry_Times=4
|
||||||
|
[ ! -d "${Download_Path}" ] && mkdir -p ${Download_Path}
|
||||||
case ${DEFAULT_Device} in
|
case ${DEFAULT_Device} in
|
||||||
x86_64)
|
x86_64)
|
||||||
[[ -z "${Firmware_Type}" ]] && Firmware_Type=img
|
[[ -z "${Firmware_Type}" ]] && Firmware_Type=img
|
||||||
|
@ -128,14 +135,14 @@ x86_64)
|
||||||
Firmware_SFX="${BOOT_Type}.${Firmware_Type}"
|
Firmware_SFX="${BOOT_Type}.${Firmware_Type}"
|
||||||
Detail_SFX="${BOOT_Type}.detail"
|
Detail_SFX="${BOOT_Type}.detail"
|
||||||
CURRENT_Device=x86_64
|
CURRENT_Device=x86_64
|
||||||
Space_Req=480
|
Space_Min=480
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
CURRENT_Device="$(jsonfilter -e '@.model.id' < /etc/board.json | tr ',' '_')"
|
CURRENT_Device="$(jsonfilter -e '@.model.id' < /etc/board.json | tr ',' '_')"
|
||||||
Firmware_SFX=".${Firmware_Type}"
|
Firmware_SFX=".${Firmware_Type}"
|
||||||
[[ -z ${Firmware_SFX} ]] && Firmware_SFX=".bin"
|
[[ -z ${Firmware_SFX} ]] && Firmware_SFX=".bin"
|
||||||
Detail_SFX=.detail
|
Detail_SFX=.detail
|
||||||
Space_Req=0
|
Space_Min=0
|
||||||
esac
|
esac
|
||||||
cd /etc
|
cd /etc
|
||||||
clear && echo "Openwrt-AutoUpdate Script ${Version}"
|
clear && echo "Openwrt-AutoUpdate Script ${Version}"
|
||||||
|
@ -183,7 +190,7 @@ else
|
||||||
List_Info
|
List_Info
|
||||||
;;
|
;;
|
||||||
-d | -del)
|
-d | -del)
|
||||||
rm -f /tmp/Downloads/* /tmp/Github_Tags
|
rm -f ${Download_Path}/*
|
||||||
TIME && echo "固件下载缓存清理完成!"
|
TIME && echo "固件下载缓存清理完成!"
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
|
@ -206,6 +213,19 @@ else
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
|
-x)
|
||||||
|
wget -q ${CLOUD_Script} -O ${Download_Path}/AutoUpdate.sh
|
||||||
|
if [[ $? == 0 ]];then
|
||||||
|
TIME && echo "AutoUpdate 脚本更新成功!"
|
||||||
|
rm -f /bin/AutoUpdate.sh
|
||||||
|
mv -f ${Download_Path}/AutoUpdate.sh /bin
|
||||||
|
chmod +x /bin/AutoUpdate.sh
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
TIME && echo "AutoUpdate 脚本更新失败!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo -e "\nERROR INPUT: [$*]"
|
echo -e "\nERROR INPUT: [$*]"
|
||||||
Shell_Helper
|
Shell_Helper
|
||||||
|
@ -222,8 +242,8 @@ else
|
||||||
TIME && echo "无法确定网络环境,默认使用 [FastGit] 镜像加速!"
|
TIME && echo "无法确定网络环境,默认使用 [FastGit] 镜像加速!"
|
||||||
PROXY_URL="${_PROXY_URL}"
|
PROXY_URL="${_PROXY_URL}"
|
||||||
fi
|
fi
|
||||||
[[ "${TMP_Available}" -lt "${Space_Req}" ]] && {
|
[[ "${TMP_Available}" -lt "${Space_Min}" ]] && {
|
||||||
TIME && echo "/tmp 空间不足: [${Space_Req}M],无法执行更新!"
|
TIME && echo "/tmp 空间不足: [${Space_Min}M],无法执行更新!"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
Install_Pkg wget
|
Install_Pkg wget
|
||||||
|
@ -241,13 +261,13 @@ if [[ -z "${CURRENT_Device}" ]];then
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
TIME && echo "正在检查版本更新..."
|
TIME && echo "正在检查版本更新..."
|
||||||
wget -q ${Github_Tags} -O - > /tmp/Github_Tags
|
wget -q ${Github_Tags} -O - > ${Download_Path}/Github_Tags
|
||||||
[[ ! $? == 0 ]] && {
|
[[ ! $? == 0 ]] && {
|
||||||
TIME && echo "检查更新失败,请稍后重试!"
|
TIME && echo "检查更新失败,请稍后重试!"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
TIME && echo "正在获取云端固件版本..."
|
TIME && echo "正在获取云端固件版本..."
|
||||||
CLOUD_Firmware=$(cat /tmp/Github_Tags | egrep -o "AutoBuild-${CURRENT_Device}-R[0-9].+-[0-9]+${Firmware_SFX}" | awk 'END {print}')
|
CLOUD_Firmware=$(cat ${Download_Path}/Github_Tags | egrep -o "AutoBuild-${CURRENT_Device}-R[0-9].+-[0-9]+${Firmware_SFX}" | awk 'END {print}')
|
||||||
CLOUD_Version=$(echo ${CLOUD_Firmware} | egrep -o "R[0-9].+-[0-9]+")
|
CLOUD_Version=$(echo ${CLOUD_Firmware} | egrep -o "R[0-9].+-[0-9]+")
|
||||||
[[ -z "${CLOUD_Version}" ]] && {
|
[[ -z "${CLOUD_Version}" ]] && {
|
||||||
TIME && echo "云端固件版本获取失败!"
|
TIME && echo "云端固件版本获取失败!"
|
||||||
|
@ -256,8 +276,8 @@ CLOUD_Version=$(echo ${CLOUD_Firmware} | egrep -o "R[0-9].+-[0-9]+")
|
||||||
Firmware_Name="$(echo ${CLOUD_Firmware} | egrep -o "AutoBuild-${CURRENT_Device}-R[0-9].+-[0-9]+")"
|
Firmware_Name="$(echo ${CLOUD_Firmware} | egrep -o "AutoBuild-${CURRENT_Device}-R[0-9].+-[0-9]+")"
|
||||||
Firmware="${CLOUD_Firmware}"
|
Firmware="${CLOUD_Firmware}"
|
||||||
Firmware_Detail="${Firmware_Name}${Detail_SFX}"
|
Firmware_Detail="${Firmware_Name}${Detail_SFX}"
|
||||||
let X=$(grep -n "${Firmware}" /tmp/Github_Tags | tail -1 | cut -d : -f 1)-4
|
let X=$(grep -n "${Firmware}" ${Download_Path}/Github_Tags | tail -1 | cut -d : -f 1)-4
|
||||||
let CLOUD_Firmware_Size=$(sed -n "${X}p" /tmp/Github_Tags | egrep -o "[0-9]+" | awk '{print ($1)/1048576}' | awk -F. '{print $1}')+1
|
let CLOUD_Firmware_Size=$(sed -n "${X}p" ${Download_Path}/Github_Tags | egrep -o "[0-9]+" | awk '{print ($1)/1048576}' | awk -F. '{print $1}')+1
|
||||||
echo -e "\n固件作者: ${Author%/*}"
|
echo -e "\n固件作者: ${Author%/*}"
|
||||||
echo "设备名称: ${CURRENT_Device}"
|
echo "设备名称: ${CURRENT_Device}"
|
||||||
echo "固件格式: ${Firmware_SFX}"
|
echo "固件格式: ${Firmware_SFX}"
|
||||||
|
@ -285,11 +305,11 @@ fi
|
||||||
[[ -n "${PROXY_URL}" ]] && Github_Download=${PROXY_URL}/${Author}/releases/download/AutoUpdate
|
[[ -n "${PROXY_URL}" ]] && Github_Download=${PROXY_URL}/${Author}/releases/download/AutoUpdate
|
||||||
echo -e "\n云端固件名称: ${Firmware}"
|
echo -e "\n云端固件名称: ${Firmware}"
|
||||||
echo "固件下载地址: ${Github_Download}"
|
echo "固件下载地址: ${Github_Download}"
|
||||||
echo "固件保存位置: /tmp/Downloads"
|
echo "固件保存位置: ${Download_Path}"
|
||||||
[ ! -d "/tmp/Downloads" ] && mkdir -p /tmp/Downloads
|
[ ! -d "${Download_Path}" ] && mkdir -p ${Download_Path}
|
||||||
rm -f /tmp/Downloads/*
|
rm -f ${Download_Path}/*
|
||||||
TIME && echo "正在下载固件,请耐心等待..."
|
TIME && echo "正在下载固件,请耐心等待..."
|
||||||
cd /tmp/Downloads
|
cd ${Download_Path}
|
||||||
while [ "${Retry_Times}" -ge 0 ];
|
while [ "${Retry_Times}" -ge 0 ];
|
||||||
do
|
do
|
||||||
if [[ "${Retry_Times}" == 3 ]];then
|
if [[ "${Retry_Times}" == 3 ]];then
|
||||||
|
|
Loading…
Reference in New Issue