added check sha256sum for saved files
This commit is contained in:
111
winehelper
111
winehelper
@ -294,31 +294,46 @@ read_page () {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
try_download () {
|
check_file_sum () {
|
||||||
local DOWNLOAD_FILE_URL="${1// /%20}"
|
local sha256sum_ext sha256sum_int check_file_path check_file_name
|
||||||
local OUTPUT_FILE="$2"
|
check_file_path="$1"
|
||||||
local OUTPUT_FILE_NAME="$(basename "$OUTPUT_FILE")"
|
check_file_name="$(basename "$check_file_path")"
|
||||||
|
|
||||||
print_info "Скачивание файла $OUTPUT_FILE_NAME..."
|
sha256sum_ext=$(sha256sum "$check_file_path" | awk '{print $1}')
|
||||||
if curl -f --progress-bar -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" \
|
sha256sum_int="$(grep "$check_file_name" "$DATA_PATH/sha256sum.list" | awk '{print $1}')"
|
||||||
-L "$DOWNLOAD_FILE_URL" -o "$OUTPUT_FILE"
|
|
||||||
then
|
if [[ "$sha256sum_ext" == "$sha256sum_int" ]] ; then
|
||||||
print_ok "Скачивание файла $OUTPUT_FILE_NAME прошло успешно."
|
print_ok "Хэш-сумма файла $check_file_name успешно проверена."
|
||||||
if [[ "$3" == check256sum ]] ; then
|
|
||||||
SHA256SUM_EXT=$(sha256sum "$OUTPUT_FILE" | awk '{print $1}')
|
|
||||||
SHA256SUM_INT="$(grep "$OUTPUT_FILE_NAME" "$DATA_PATH/sha256sum.list" | awk '{print $1}')"
|
|
||||||
if [[ "$SHA256SUM_EXT" == "$SHA256SUM_INT" ]] ; then
|
|
||||||
print_ok "Хэш-сумма файла $OUTPUT_FILE_NAME успешно проверена."
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
fatal "Хэш-сумма файла $OUTPUT_FILE_NAME не совподает!"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
fatal "Скачивание файла: $OUTPUT_FILE_NAME завершилось с ошибкой!"
|
try_remove_file "$check_file_path"
|
||||||
return 1
|
fatal "Хэш-сумма файла $check_file_name не совподает!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
try_download () {
|
||||||
|
local download_file_url output_file output_file_name
|
||||||
|
download_file_url="${1// /%20}"
|
||||||
|
output_file="$2"
|
||||||
|
output_file_name="$(basename "$output_file")"
|
||||||
|
|
||||||
|
if [[ -f "$output_file" ]] ; then
|
||||||
|
print_info "Файл найден: $output_file"
|
||||||
|
[[ $3 == "check256sum" ]] && check_file_sum "$output_file"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
print_info "Скачивание файла $output_file_name..."
|
||||||
|
if curl -f --progress-bar -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" \
|
||||||
|
-L "$download_file_url" -o "$output_file"
|
||||||
|
then
|
||||||
|
print_ok "Скачивание файла $output_file_name прошло успешно."
|
||||||
|
[[ $3 == "check256sum" ]] && check_file_sum "$output_file"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
try_remove_file "$output_file"
|
||||||
|
fatal "Скачивание файла: $output_file_name завершилось с ошибкой!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -681,11 +696,11 @@ init_wine_ver () {
|
|||||||
if [[ ! -d "$WINEDIR" ]] ; then
|
if [[ ! -d "$WINEDIR" ]] ; then
|
||||||
WINE_URL="$CLOUD_URL/$WH_WINE_USE.tar.xz"
|
WINE_URL="$CLOUD_URL/$WH_WINE_USE.tar.xz"
|
||||||
local WINE_PACKAGE="$WH_TMP_DIR/${WH_WINE_USE}.tar.xz"
|
local WINE_PACKAGE="$WH_TMP_DIR/${WH_WINE_USE}.tar.xz"
|
||||||
if try_download "$WINE_URL" "$WINE_PACKAGE" check256sum ; then
|
if try_download "$WINE_URL" "$WINE_PACKAGE" check256sum \
|
||||||
if unpack "$WINE_PACKAGE" "$WH_DIST_DIR/" ; then
|
&& unpack "$WINE_PACKAGE" "$WH_DIST_DIR/"
|
||||||
echo "$WH_WINE_USE" > "$WH_DIST_DIR/$WH_WINE_USE/version"
|
then
|
||||||
try_remove_file "$WINE_PACKAGE"
|
echo "$WH_WINE_USE" > "$WH_DIST_DIR/$WH_WINE_USE/version"
|
||||||
fi
|
try_remove_file "$WINE_PACKAGE"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -730,15 +745,8 @@ init_wine_ver () {
|
|||||||
CPCSP_PROXY_NAME="wine-cpcsp_proxy-$CPCSP_PROXY_VER"
|
CPCSP_PROXY_NAME="wine-cpcsp_proxy-$CPCSP_PROXY_VER"
|
||||||
CPCSP_PROXY_URL="$CLOUD_URL/$CPCSP_PROXY_NAME.tar.xz"
|
CPCSP_PROXY_URL="$CLOUD_URL/$CPCSP_PROXY_NAME.tar.xz"
|
||||||
|
|
||||||
if [[ ! -f "$WH_TMP_DIR/$CPCSP_PROXY_NAME" ]] ; then
|
try_download "$CPCSP_PROXY_URL" "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" check256sum
|
||||||
print_info "Загрузка $CPCSP_PROXY_NAME.tar.xz"
|
unpack "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" "$WH_TMP_DIR"
|
||||||
if try_download "$CPCSP_PROXY_URL" "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" check256sum
|
|
||||||
then unpack "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" "$WH_TMP_DIR"
|
|
||||||
else try_remove_file "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
unpack "$WH_TMP_DIR/$CPCSP_PROXY_NAME.tar.xz" "$WH_TMP_DIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp -fr "$WH_TMP_DIR/$CPCSP_PROXY_NAME/"i386-* "${WINEDIR}/lib/wine/"
|
cp -fr "$WH_TMP_DIR/$CPCSP_PROXY_NAME/"i386-* "${WINEDIR}/lib/wine/"
|
||||||
if [[ -d "${WINEDIR}/lib64" ]] ; then
|
if [[ -d "${WINEDIR}/lib64" ]] ; then
|
||||||
@ -873,23 +881,15 @@ wait_wineserver () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get_base_pfx () {
|
get_base_pfx () {
|
||||||
local FILE_NAME_PFX="$1"
|
local pfx_file_name pfx_file_url pfx_tmp_path
|
||||||
local PFX_URL="$CLOUD_URL/${FILE_NAME_PFX}.tar.xz"
|
pfx_file_name="${1}.tar.xz"
|
||||||
local PFX_TMP="$WH_TMP_DIR/pfx"
|
pfx_file_url="$CLOUD_URL/$pfx_file_name"
|
||||||
create_new_dir "$PFX_TMP"
|
pfx_tmp_path="$WH_TMP_DIR/pfx"
|
||||||
|
|
||||||
if [[ ! -f "$PFX_TMP/$FILE_NAME_PFX.tar.xz" ]] ; then
|
create_new_dir "$pfx_tmp_path"
|
||||||
print_info "Загрузка базового префикса: ${FILE_NAME_PFX}"
|
print_info "Загрузка архива базового префикса: $pfx_file_name"
|
||||||
if try_download "$PFX_URL" "$PFX_TMP/$FILE_NAME_PFX.tar.xz" check256sum
|
try_download "$pfx_file_url" "$pfx_tmp_path/$pfx_file_name" check256sum
|
||||||
then unpack --skip-xattr "$PFX_TMP/$FILE_NAME_PFX.tar.xz" "$WINEPREFIX/"
|
unpack --skip-xattr "$pfx_tmp_path/$pfx_file_name" "$WINEPREFIX/"
|
||||||
else try_remove_file "$PFX_TMP/$FILE_NAME_PFX.tar.xz"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if ! unpack --skip-xattr "$PFX_TMP/$FILE_NAME_PFX.tar.xz" "$WINEPREFIX/" ; then
|
|
||||||
try_remove_file "${PFX_TMP}/${FILE_NAME_PFX}.tar.xz"
|
|
||||||
get_base_pfx "$FILE_NAME_PFX"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
check_prefix_var () {
|
check_prefix_var () {
|
||||||
@ -1080,12 +1080,11 @@ init_wineprefix () {
|
|||||||
if [[ $WH_USE_EXTRA_FONTS == "1" ]] \
|
if [[ $WH_USE_EXTRA_FONTS == "1" ]] \
|
||||||
&& [[ ! -e "$fonts_dir/${x_fonts_name}.installed" ]]
|
&& [[ ! -e "$fonts_dir/${x_fonts_name}.installed" ]]
|
||||||
then
|
then
|
||||||
print_info "Устанавливаем дополнительные шрифты..."
|
|
||||||
local x_fonts_url="$CLOUD_URL/${x_fonts_name}.tar.xz"
|
local x_fonts_url="$CLOUD_URL/${x_fonts_name}.tar.xz"
|
||||||
local x_fonts_tar="$WH_TMP_DIR/${x_fonts_name}.tar.xz"
|
local x_fonts_tar="$WH_TMP_DIR/${x_fonts_name}.tar.xz"
|
||||||
if [[ ! -f "$x_fonts_tar" ]] ; then
|
|
||||||
try_download "$x_fonts_url" "$x_fonts_tar" check256sum
|
print_info "Устанавливаем дополнительные шрифты..."
|
||||||
fi
|
try_download "$x_fonts_url" "$x_fonts_tar" check256sum
|
||||||
unpack "$x_fonts_tar" "$fonts_dir/"
|
unpack "$x_fonts_tar" "$fonts_dir/"
|
||||||
touch "$fonts_dir/${x_fonts_name}.installed"
|
touch "$fonts_dir/${x_fonts_name}.installed"
|
||||||
fi
|
fi
|
||||||
|
Reference in New Issue
Block a user