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