diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper
index f13ec638..14e2c66c 100755
--- a/data_from_portwine/scripts/functions_helper
+++ b/data_from_portwine/scripts/functions_helper
@@ -7478,30 +7478,8 @@ pw_create_prefix_backup () {
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then
restart_pp
fi
- if [[ -n "$(grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop )" ]] ; then
- try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut"
- grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop | awk -F"/${PW_PREFIX_NAME}/" '{print $2}' \
- | awk -F\" '{print $1}' > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut"
- fi
- unset PW_SANDBOX_HOME_PATH
- pw_init_runtime
- if check_flatpak
- then TMP_ALL_PATH=""
- else TMP_ALL_PATH="LD_LIBRARY_PATH=\"${PW_LD_LIBRARY_PATH}\""
- fi
- chmod -R u+w "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}"
-cat << EOF > "${PORT_WINE_TMP_PATH}"/pp_pfx_backup.sh
- #!/usr/bin/env bash
- ${TMP_ALL_PATH} mksquashfs "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" \
- "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" -comp zstd \
- || rm -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part"
- sleep 3
-EOF
- chmod u+x "${PORT_WINE_TMP_PATH}"/pp_pfx_backup.sh
- ${pw_runtime} ${PW_TERM} "${PORT_WINE_TMP_PATH}"/pp_pfx_backup.sh
- try_remove_file "${PORT_WINE_TMP_PATH}"/pp_pfx_backup.sh
- if [[ -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" ]] ; then
- mv -f "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack.part" "${PW_PREFIX_TO_BACKUP}/${PW_PREFIX_NAME}.ppack"
+
+ if pw_create_prefix_backup_cli "$PW_PREFIX_NAME" "$PW_PREFIX_TO_BACKUP" ; then
yad_info "${translations[Backup has been successfully created for prefix:]} $PW_PREFIX_NAME"
if [[ ! -f "${PORT_WINE_TMP_PATH}/pfx_backup_info" ]] ; then
yad_info "${translations[Attention! Do not pass the resev copy to third parties, there is a risk of losing accounts!]}"
@@ -7517,6 +7495,12 @@ pw_create_prefix_backup_cli () {
PW_PREFIX_NAME="$1"
PW_PREFIX_TO_BACKUP="$2"
+ if [[ -n "$(grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop )" ]] ; then
+ try_remove_file "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut"
+ grep "/${PW_PREFIX_NAME}/" "${PORT_WINE_PATH}"/*.desktop | awk -F"/${PW_PREFIX_NAME}/" '{print $2}' \
+ | awk -F\" '{print $1}' > "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut"
+ fi
+
unset PW_SANDBOX_HOME_PATH
pw_init_runtime
if check_flatpak; then
@@ -7583,6 +7567,16 @@ pw_unpack_prefix_cli () {
return 1
else
try_remove_file "${PORT_WINE_TMP_PATH}/pp_pfx_unpack.sh"
+ if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" ]] ; then
+ while read -r line
+ do
+ export portwine_exe="$PORT_WINE_PATH/data/prefixes/$PW_PREFIX_NAME/$line"
+ if check_start_from_steam
+ then portwine_output_yad_shortcut --silent
+ else portwine_create_shortcut
+ fi
+ done < "$PORT_WINE_PATH/data/prefixes/$PW_PREFIX_NAME/.create_shortcut"
+ fi
return 0
fi
}
diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh
index d38aa8d6..da44581c 100755
--- a/data_from_portwine/scripts/start.sh
+++ b/data_from_portwine/scripts/start.sh
@@ -390,42 +390,10 @@ export SKIP_CHECK_UPDATES="1"
[[ "$MISSING_DESKTOP_FILE" == "1" ]] && portwine_missing_shortcut
if [[ $(basename "${portwine_exe,,}") =~ .ppack$ ]] ; then
- unset PW_SANDBOX_HOME_PATH
- pw_init_runtime
- if check_flatpak
- then TMP_ALL_PATH=""
- else TMP_ALL_PATH="LD_LIBRARY_PATH=\"${PW_LD_LIBRARY_PATH}\""
- fi
- if check_selinux
- then NO_XATTRS_NEED="-no-xattrs"
- else NO_XATTRS_NEED=""
- fi
- PW_PREFIX_NAME=$(basename "${1^^}" .PPACK)
-cat << EOF > "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh
- #!/usr/bin/env bash
- ${TMP_ALL_PATH} unsquashfs $NO_XATTRS_NEED -f -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" "$1" \
- || echo "ERROR" > "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack_error
- sleep 3
-EOF
- chmod u+x "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh
- ${pw_runtime} ${PW_TERM} "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh
- if grep "ERROR" "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack_error &>/dev/null ; then
- try_remove_file "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack_error
- try_remove_file "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh
+ if ! pw_unpack_prefix_cli "$portwine_exe" ; then
yad_error "${translations[Unpack has FAILED for prefix:]} \"${PW_PREFIX_NAME}\"."
exit 1
- else
- try_remove_file "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh
- if [[ -f "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/.create_shortcut" ]] ; then
- while read -r line
- do
- export portwine_exe="$PORT_WINE_PATH/data/prefixes/$PW_PREFIX_NAME/$line"
- if check_start_from_steam
- then portwine_output_yad_shortcut --silent
- else portwine_create_shortcut
- fi
- done < "$PORT_WINE_PATH/data/prefixes/$PW_PREFIX_NAME/.create_shortcut"
- fi
+ else
if ! check_start_from_steam
then yad_info "${translations[Unpack is DONE for prefix:]} \"${PW_PREFIX_NAME}\"."
fi