42 lines
1.5 KiB
Bash
42 lines
1.5 KiB
Bash
#!/system/bin/sh
|
|
MODDIR="${0%/*}"
|
|
app_details="$MODDIR/app_details"
|
|
tools_path="${MODDIR%/*}/tools"
|
|
bin_path="${MODDIR%/*}/tools/bin"
|
|
script="${0##*/}"
|
|
[[ ! -d $tools_path ]] && echo "$tools_path目錄遺失" && exit 1
|
|
[[ ! -d $bin_path ]] && echo "$bin_path目錄遺失" && exit 1
|
|
. "$bin_path/bin.sh"
|
|
#記錄開始時間
|
|
starttime1="$(date -u "+%s")"
|
|
echo_log() {
|
|
if [[ $? = 0 ]]; then
|
|
echoRgb "$1成功" "1" && result=0
|
|
else
|
|
echoRgb "$1恢複失敗,過世了" "0" && result=1
|
|
fi
|
|
}
|
|
Release_data() {
|
|
tar_path="$1"
|
|
FILE_NAME="${tar_path##*/}"
|
|
FILE_NAME2="${FILE_NAME%%.*}"
|
|
echoRgb "恢復$FILE_NAME2數據" "2" && usertar="1"
|
|
case ${FILE_NAME##*.} in
|
|
lz4) pv "$1" | tar -I lz4 -xPpf - ; Set_back ;;
|
|
zst) pv "$1" | tar -I zstd -xPpf - ;;
|
|
tar) pv "$1" | tar -xPpf - ;;
|
|
*) (echoRgb "$FILE_NAME 壓縮包不支持解壓縮" "0" ; Set_back)
|
|
esac
|
|
echo_log "$FILE_NAME 解壓縮($FILE_NAME2)"
|
|
[[ $result = 0 ]] && [[ -f $app_details ]] && echoRgb "解壓路徑:$(cat "$app_details" | awk "/${FILE_NAME2}path/"'{print $1}' | cut -f2 -d '=' | tail -n1 | sed 's/\"//g')"
|
|
}
|
|
starttime1="$(date -u "+%s")"
|
|
A=1
|
|
B="$(find "$MODDIR" -maxdepth 1 -name "*.tar*" -type f | wc -l)"
|
|
find "$MODDIR" -maxdepth 1 -name "*.tar*" -type f | while read; do
|
|
starttime2="$(date -u "+%s")"
|
|
echoRgb "恢復第$A/$B個壓縮包 剩下$((B-A))個"
|
|
Release_data "$REPLY"
|
|
endtime 2 "$FILE_NAME2恢複" && echoRgb "完成$((A*100/B))%" && echoRgb "____________________________________" "3" && let A++
|
|
done
|
|
endtime 1 "恢複結束" |