Update AutoBuild_Tools.sh
This commit is contained in:
		
							parent
							
								
									33636bb38a
								
							
						
					
					
						commit
						21af2b74ae
					
				|  | @ -9,23 +9,51 @@ AutoBuild_Tools() { | |||
| 	while : | ||||
| 	do | ||||
| 		clear | ||||
| 		echo -e "$(cat /etc/banner)\n\n" | ||||
| 		echo -e "AutoBuild 固件工具箱 ${Version}\n" | ||||
| 		echo "1. USB 空间扩展" | ||||
| 		echo "2. Samba 一键共享" | ||||
| 		echo "3. 软件包安装" | ||||
| 		echo -e "\nq.退出\n" | ||||
| 		echo "4. 查找文件(夹)" | ||||
| 		echo "u. 固件更新" | ||||
| 		 | ||||
| 		echo -e "\nx. 更新 [AutoBuild_Tools] 脚本" | ||||
| 		echo -e "q. 退出\n" | ||||
| 		read -p "请从上方选择一个操作:" Choose | ||||
| 		case $Choose in | ||||
| 		q) | ||||
| 			rm -rf /tmp/AutoExpand /tmp/AutoSamba | ||||
| 			rm -rf ${AutoBuild_Tools_Temp} | ||||
| 			clear | ||||
| 			exit | ||||
| 			exit 0 | ||||
| 		;; | ||||
| 		u) | ||||
| 			[ -f /bin/AutoUpdate.sh ] && { | ||||
| 				AutoUpdate_UI | ||||
| 			} || { | ||||
| 				echo "未检测到 '/bin/AutoUpdate.sh',请确保当前固件支持一键更新!" | ||||
| 			} | ||||
| 		;; | ||||
| 		x) | ||||
| 			wget -q https://github.com/Hyy2001X/AutoBuild-Actions/Scripts/AutoBuild_Tools.sh -O ${AutoBuild_Tools_Temp}/AutoBuild_Tools.sh | ||||
| 			[[ $? == 0 ]] && { | ||||
| 				echo -e "\n脚本更新成功!" | ||||
| 				rm -f /bin/AutoBuild_Tools.sh.sh | ||||
| 				mv -f ${AutoBuild_Tools_Temp}/AutoBuild_Tools.sh /bin | ||||
| 				chmod +x /bin/AutoBuild_Tools.sh.sh | ||||
| 			} || echo -e "\n脚本更新失败!" | ||||
| 			sleep 2 | ||||
| 		;; | ||||
| 		1) | ||||
| 			which block > /dev/null 2>&1 | ||||
| 			[[ ! $? -eq 0 ]] && { | ||||
| 				echo -e "\n缺少相应依赖包,请先安装 [block-mount] !" | ||||
| 				sleep 3 | ||||
| 			} || { | ||||
| 				uci set fstab.@global[0].auto_mount='0' | ||||
| 				uci set fstab.@global[0].auto_swap='0' | ||||
| 				uci commit fstab | ||||
| 				AutoExpand_UI | ||||
| 			} | ||||
| 		;; | ||||
| 		2) | ||||
| 			AutoSamba_UI | ||||
|  | @ -33,13 +61,28 @@ AutoBuild_Tools() { | |||
| 		3) | ||||
| 			AutoInstall_UI | ||||
| 		;; | ||||
| 		4) | ||||
| 			read -p "请选择要查找的类型[1.文件/*.文件夹]:" _Type | ||||
| 			[[ "${_Type}" == 1 ]] && _Type="f" || _Type="d" | ||||
| 			read -p "请输入要查找的路径:" _Path | ||||
| 			[[ -z "${_Path}" ]] && _Path="/" | ||||
| 			read -p "请输入要查找的文件(夹)名称:" _Name | ||||
| 			while [[ -z "${_Name}" ]] | ||||
| 			do | ||||
| 				echo -e "\n文件(夹)名称不能为空!\n" | ||||
| 				read -p "请输入要查找的文件(夹)名称:" _Name | ||||
| 			done | ||||
| 			echo -e "\n开始从 [${_Path}] 中查找 [${_Name}],请耐心等待 ...\n" | ||||
| 			PKG_Finder ${_Type} ${_Path} ${_Name} | ||||
| 			Enter | ||||
| 		;; | ||||
| 		esac | ||||
| 	done | ||||
| } | ||||
| 
 | ||||
| AutoExpand_UI() { | ||||
| 	clear | ||||
| 	echo -e "一键 USB 扩展内部空间\n" | ||||
| 	echo -e "一键 USB 扩展内部空间/AutoExpand\n" | ||||
| 	USB_Check_Core | ||||
| 	[[ -n "${Check_Disk}" ]] && { | ||||
| 		for ((i=1;i<=${Disk_Number};i++)); | ||||
|  | @ -51,14 +94,14 @@ AutoExpand_UI() { | |||
| 		echo "r. 重新载入列表" | ||||
| 	} || { | ||||
| 		echo "未检测到外接硬盘!" && sleep 2 | ||||
| 		return | ||||
| 		return 1 | ||||
| 	} | ||||
| 	echo "" | ||||
| 	read -p "请输入要操作的硬盘编号[1-${Disk_Number}]:" Choose | ||||
| 	echo "" | ||||
| 	case ${Choose} in | ||||
| 	q) | ||||
| 		return | ||||
| 		return 0 | ||||
| 	;; | ||||
| 	r) | ||||
| 		block mount | ||||
|  | @ -70,7 +113,7 @@ AutoExpand_UI() { | |||
| 			[[ $? -eq 0 ]] && { | ||||
| 				AutoExpand_Core | ||||
| 			} || { | ||||
| 				echo "请先安装 [e2fsprogs] !" && sleep 3 | ||||
| 				echo "缺少相应依赖包,请先安装 [e2fsprogs] !" && sleep 3 | ||||
| 			}			 | ||||
| 		} || { | ||||
| 			echo "选择错误,请输入正确的选项!" | ||||
|  | @ -83,7 +126,7 @@ AutoExpand_UI() { | |||
| 
 | ||||
| USB_Check_Core() { | ||||
| 	block mount | ||||
| 	rm -rf ${AutoExpend_Tmp}/* | ||||
| 	rm -rf ${AutoExpend_Temp}/* | ||||
| 	echo "$(block info)" > ${Block_Info} | ||||
| 	Check_Disk="$(cat ${Block_Info} | awk  -F ':' '/sd/{print $1}')" | ||||
| 	[[ -n "${Check_Disk}" ]] && { | ||||
|  | @ -110,6 +153,7 @@ USB_Check_Core() { | |||
| AutoExpand_Core() { | ||||
| 	Choosed_Disk="$(sed -n ${Choose}p ${Disk_Processed_List} | awk '{print $1}')" | ||||
| 	echo "警告: 本次操作将把硬盘: '${Choosed_Disk}' 格式化为 'ext4' 格式,请提前做好数据备份工作!" | ||||
| 	echo "注意: 操作开始后请不要中断任务或进行其他操作,否则可能导致设备数据丢失!" | ||||
| 	read -p "是否继续本次操作?[Y/n]:" Choose | ||||
| 	[[ "${Choose}" == Y ]] || [[ "${Choose}" == y ]] && sleep 3 && echo "" || { | ||||
| 		sleep 3 | ||||
|  | @ -122,12 +166,12 @@ AutoExpand_Core() { | |||
| 		umount -l ${Choosed_Disk_Mounted} > /dev/null 2>&1 | ||||
| 		[[ "$(mount)" =~ "${Choosed_Disk_Mounted}" ]] > /dev/null 2>&1 && { | ||||
| 			echo "取消挂载: '${Choosed_Disk_Mounted}' 失败 !" | ||||
| 			exit | ||||
| 			exit 1 | ||||
| 		} | ||||
| 	} | ||||
| 	echo "正在格式化硬盘: '${Choosed_Disk}' 为 'ext4' 格式 ..." | ||||
| 	echo "正在格式化硬盘: '${Choosed_Disk}',请耐心等待 ..." | ||||
| 	mkfs.ext4 -F ${Choosed_Disk} > /dev/null 2>&1 | ||||
| 	echo "格式化完成! 挂载硬盘: '${Choosed_Disk}' 到 ' /tmp/extroot' ..." | ||||
| 	echo "硬盘格式化完成! 挂载硬盘: '${Choosed_Disk}' 到 ' /tmp/extroot' ..." | ||||
| 	mkdir -p /tmp/introot && mkdir -p /tmp/extroot | ||||
| 	mount --bind / /tmp/introot | ||||
| 	mount ${Choosed_Disk} /tmp/extroot | ||||
|  | @ -144,7 +188,7 @@ AutoExpand_Core() { | |||
| 	sed -i "s?/mnt/bak?/?g" /etc/config/fstab | ||||
| 	for ((i=0;i<=${Disk_Number};i++)); | ||||
| 	do | ||||
| 		uci set fstab.@mount[${i}].enabled='1' > /dev/null 2>&1 | ||||
| 		uci set fstab.@mount[${i}].enabled='1' | ||||
| 	done | ||||
| 	uci commit fstab | ||||
| 	umount -l /mnt/bak | ||||
|  | @ -171,7 +215,7 @@ AutoSamba_UI() { | |||
| 	while : | ||||
| 	do | ||||
| 		clear | ||||
| 		echo -e "Samba 工具箱\n" | ||||
| 		echo -e "Samba 工具箱/AutoSamba\n" | ||||
| 		echo "1. 删除所有 Samba 挂载点" | ||||
| 		echo "2. 自动生成 Samba 共享" | ||||
| 		echo "3. 关闭/开启自动共享" | ||||
|  | @ -225,20 +269,20 @@ Mount_Samba_Devices() { | |||
| 		Disk_Name=$(sed -n ${i}p ${Samba_Disk_List} | awk '{print $1}') | ||||
| 		Disk_Mounted_Point=$(sed -n ${i}p ${Samba_Disk_List} | awk '{print $2}') | ||||
| 		Samba_Name=${Disk_Mounted_Point#*/mnt/} | ||||
| 		uci show 2>&1 | grep "sambashare" > ${UCI_Show_List} | ||||
| 		if [[ ! "$(cat ${UCI_Show_List})" =~ "${Disk_Name}" ]] > /dev/null 2>&1 ;then | ||||
| 		uci show 2>&1 | grep "sambashare" > ${Samba_UCI_List} | ||||
| 		if [[ ! "$(cat ${Samba_UCI_List})" =~ "${Disk_Name}" ]] > /dev/null 2>&1 ;then | ||||
| 			echo "共享硬盘: '${Disk_Name}' on '${Disk_Mounted_Point}' 到 '${Samba_Name}' ..." | ||||
| 			echo -e "\nconfig sambashare" >> ${Samba_Config_File} | ||||
| 			echo -e "\toption auto '1'" >> ${Samba_Config_File} | ||||
| 			echo -e "\toption name '${Samba_Name}'" >> ${Samba_Config_File} | ||||
| 			echo -e "\toption device '${Disk_Name}'" >> ${Samba_Config_File} | ||||
| 			echo -e "\toption path '${Disk_Mounted_Point}'" >> ${Samba_Config_File} | ||||
| 			echo -e "\toption read_only 'no'" >> ${Samba_Config_File} | ||||
| 			echo -e "\toption guest_ok 'yes'" >> ${Samba_Config_File} | ||||
| 			echo -e "\toption create_mask '0666'" >> ${Samba_Config_File} | ||||
| 			echo -e "\toption dir_mask '0777'" >> ${Samba_Config_File} | ||||
| 			echo -e "\nconfig sambashare" >> ${Samba_Config} | ||||
| 			echo -e "\toption auto '1'" >> ${Samba_Config} | ||||
| 			echo -e "\toption name '${Samba_Name}'" >> ${Samba_Config} | ||||
| 			echo -e "\toption device '${Disk_Name}'" >> ${Samba_Config} | ||||
| 			echo -e "\toption path '${Disk_Mounted_Point}'" >> ${Samba_Config} | ||||
| 			echo -e "\toption read_only 'no'" >> ${Samba_Config} | ||||
| 			echo -e "\toption guest_ok 'yes'" >> ${Samba_Config} | ||||
| 			echo -e "\toption create_mask '0666'" >> ${Samba_Config} | ||||
| 			echo -e "\toption dir_mask '0777'" >> ${Samba_Config} | ||||
| 		else | ||||
| 			echo "硬盘: '${Disk_Name}' 已设置共享." | ||||
| 			echo "硬盘: '${Disk_Name}' 已设置共享点: '${Samba_Name}' !" | ||||
| 		fi | ||||
| 	done | ||||
| 	/etc/init.d/samba restart | ||||
|  | @ -251,8 +295,8 @@ while : | |||
| 		clear | ||||
| 		echo -e "安装软件包\n" | ||||
| 		echo "1. 更新软件包列表" | ||||
| 		AutoInstall_UI_Mod 2 block-mount | ||||
| 		AutoInstall_UI_Mod 3 e2fsprogs | ||||
| 		AutoInstall_UI_mod 2 block-mount | ||||
| 		AutoInstall_UI_mod 3 e2fsprogs | ||||
| 		echo "x. 自定义软件包名" | ||||
| 		echo -e "\nq. 返回\n" | ||||
| 		read -p "请从上方选择一个操作:" Choose | ||||
|  | @ -282,7 +326,63 @@ while : | |||
| 	done | ||||
| } | ||||
| 
 | ||||
| AutoInstall_UI_Mod() { | ||||
| AutoUpdate_UI() { | ||||
| while : | ||||
| do | ||||
| 	AutoUpdate_Version=$(awk 'NR==6' /bin/AutoUpdate.sh | awk -F '[="]+' '/Version/{print $2}') | ||||
| 	clear | ||||
| 	echo -e "AutoBuild 固件更新/AutoUpdate ${AutoUpdate_Version}\n" | ||||
| 	echo "1. 更新固件[保留配置]" | ||||
| 	echo "2. 强制更新固件(跳过版本号验证,自动安装缺失的软件包) [保留配置]" | ||||
| 	echo "3. 不保留配置更新固件[全新安装]" | ||||
| 	echo "4. 列出固件信息" | ||||
| 	echo "5. 清除固件下载缓存" | ||||
| 	echo "6. 更改 Github API 地址" | ||||
| 	echo "7. 指定 x86 设备下载 UEFI/Legacy 引导的固件" | ||||
| 	 | ||||
| 	echo -e "\nx. 更新 [AutoUpdate] 脚本" | ||||
| 	echo -e "q. 返回\n" | ||||
| 	read -p "请从上方选择一个操作:" Choose | ||||
| 	case ${Choose} in | ||||
| 	q) | ||||
| 		break | ||||
| 	;; | ||||
| 	x) | ||||
| 		wget -q https://github.com/Hyy2001X/AutoBuild-Actions/Scripts/AutoUpdate.sh -O ${AutoBuild_Tools_Temp}/AutoUpdate.sh | ||||
| 		[[ $? == 0 ]] && { | ||||
| 			echo -e "\n脚本更新成功!" | ||||
| 			rm -f /bin/AutoUpdate.sh | ||||
| 			mv -f ${AutoBuild_Tools_Temp}/AutoUpdate.sh.sh /bin | ||||
| 			chmod +x /bin/AutoUpdate.sh | ||||
| 		} || echo -e "\n脚本更新失败!" | ||||
| 		sleep 2 | ||||
| 	;; | ||||
| 	1) | ||||
| 		bash /bin/AutoUpdate.sh | ||||
| 	;; | ||||
| 	2) | ||||
| 		bash /bin/AutoUpdate.sh -f | ||||
| 	;; | ||||
| 	3) | ||||
| 		bash /bin/AutoUpdate.sh -n | ||||
| 	;; | ||||
| 	4) | ||||
| 		bash /bin/AutoUpdate.sh -l | ||||
| 	;; | ||||
| 	5) | ||||
| 		bash /bin/AutoUpdate.sh -d | ||||
| 	;; | ||||
| 	6) | ||||
| 		bash /bin/AutoUpdate.sh -c | ||||
| 	;; | ||||
| 	7) | ||||
| 		bash /bin/AutoUpdate.sh -b | ||||
| 	;; | ||||
| 	esac | ||||
| done | ||||
| } | ||||
| 
 | ||||
| AutoInstall_UI_mod() { | ||||
| 	[[ "$(opkg list | awk '{print $1}')" =~ "${2}" ]] > /dev/null 2>&1 && { | ||||
| 		echo "${1}.安装 [${2}] [已安装]" | ||||
| 	} ||  echo "${1}.未安装 [${2}] [已安装]" | ||||
|  | @ -300,17 +400,31 @@ Enter() { | |||
| 	echo "" && read -p "按下[回车]键以继续..." Key | ||||
| } | ||||
| 
 | ||||
| AutoExpend_Tmp="/tmp/AutoExpand" | ||||
| Disk_List="${AutoExpend_Tmp}/Disk_List" | ||||
| Block_Info="${AutoExpend_Tmp}/Block_Info" | ||||
| Disk_Processed_List="${AutoExpend_Tmp}/Disk_Processed_List" | ||||
| [ ! -d "${AutoExpend_Tmp}" ] && mkdir -p ${AutoExpend_Tmp} | ||||
| Samba_Config_File="/etc/config/samba" | ||||
| Samba_Tmp="/tmp/AutoSamba" | ||||
| Samba_Disk_List="${Samba_Tmp}/Disk_List" | ||||
| UCI_Show_List="${Samba_Tmp}/UCI_List" | ||||
| [ ! -d "${Samba_Tmp}" ] && mkdir -p "${Samba_Tmp}" | ||||
| which block > /dev/null 2>&1 | ||||
| [[ $? -eq 0 ]] && AutoBuild_Tools || { | ||||
| 	echo -e "\nAutoBuild_Tools 不适用于此固件,请先安装 [block-mount] !" | ||||
| PKG_Finder() { | ||||
| 	[[ $# -ne 3 ]] && { | ||||
| 		TIME "[ERROR] Error options: [$#] [$*] !" | ||||
| 		return 0 | ||||
| 	} | ||||
| 	unset PKG_RESULT | ||||
| 	_PKG_TYPE=${1} | ||||
| 	_PKG_DIR=${2} | ||||
| 	_PKG_NAME=${3} | ||||
| 	[[ -z ${_PKG_TYPE} ]] && [[ -z ${_PKG_NAME} ]] || [[ -z ${_PKG_DIR} ]] && return | ||||
| 	_PKG_RESULT=$(find ${_PKG_DIR} -name ${_PKG_NAME} -type ${_PKG_TYPE} -exec echo {} \;) | ||||
| 	[[ -n "${_PKG_RESULT}" ]] && echo "${_PKG_RESULT}" | ||||
| 	unset _PKG_TYPE _PKG_DIR _PKG_NAME | ||||
| } | ||||
| 
 | ||||
| unset -u | ||||
| AutoBuild_Tools_Temp="/tmp/AutoBuild_Tools" | ||||
| AutoExpend_Temp="${AutoBuild_Tools_Temp}/AutoExpand" | ||||
| Disk_List="${AutoExpend_Temp}/Disk_List" | ||||
| Block_Info="${AutoExpend_Temp}/Block_Info" | ||||
| Disk_Processed_List="${AutoExpend_Temp}/Disk_Processed_List" | ||||
| [ ! -d "${AutoExpend_Temp}" ] && mkdir -p "${AutoExpend_Temp}" | ||||
| Samba_Config="/etc/config/samba" | ||||
| Samba_Temp="${AutoBuild_Tools_Temp}/AutoSamba" | ||||
| Samba_Disk_List="${Samba_Temp}/Disk_List" | ||||
| Samba_UCI_List="${Samba_Temp}/UCI_List" | ||||
| [ ! -d "${Samba_Temp}" ] && mkdir -p "${Samba_Temp}" | ||||
| AutoBuild_Tools | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue