forked from CastroFidel/PortWINE
		
	Merge branch 'Boria138-pfx_backup' into devel
This commit is contained in:
		@@ -7513,6 +7513,82 @@ EOF
 | 
			
		||||
    restart_pp
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pw_create_prefix_backup_cli () {
 | 
			
		||||
    PW_PREFIX_NAME="$1"
 | 
			
		||||
    PW_PREFIX_TO_BACKUP="$2"
 | 
			
		||||
 | 
			
		||||
    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}"
 | 
			
		||||
 | 
			
		||||
    echo "#!/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\"
 | 
			
		||||
    " > "${PORT_WINE_TMP_PATH}/pp_pfx_backup.sh"
 | 
			
		||||
 | 
			
		||||
    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"
 | 
			
		||||
        return 0
 | 
			
		||||
    else
 | 
			
		||||
        return 1
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pw_unpack_prefix_cli () {
 | 
			
		||||
    PW_BACKUP_FILE="$1"
 | 
			
		||||
 | 
			
		||||
    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 "${PW_BACKUP_FILE^^}" .PPACK)
 | 
			
		||||
 | 
			
		||||
    echo "#!/usr/bin/env bash
 | 
			
		||||
    ${TMP_ALL_PATH} unsquashfs $NO_XATTRS_NEED -f -d \
 | 
			
		||||
    \"${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}\" \"$PW_BACKUP_FILE\" \
 | 
			
		||||
    || echo \"ERROR\" > \"${PORT_WINE_TMP_PATH}/pp_pfx_unpack_error\"
 | 
			
		||||
    " > "${PORT_WINE_TMP_PATH}/pp_pfx_unpack.sh"
 | 
			
		||||
 | 
			
		||||
    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"
 | 
			
		||||
        return 1
 | 
			
		||||
    else
 | 
			
		||||
        try_remove_file "${PORT_WINE_TMP_PATH}/pp_pfx_unpack.sh"
 | 
			
		||||
        return 0
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
pw_autoinstall_from_db () {
 | 
			
		||||
    export PW_USER_TEMP="${PORT_WINE_TMP_PATH}"
 | 
			
		||||
    export PW_USE_GAMEMODE=0
 | 
			
		||||
 
 | 
			
		||||
@@ -498,6 +498,16 @@ $(echo $files_from_autoinstall | awk '{for (i = 1; i <= NF; i++) {if (i % 10 ==
 | 
			
		||||
        edit_db_from_gui $keys_all
 | 
			
		||||
        exit 0
 | 
			
		||||
        ;;
 | 
			
		||||
    --backup-prefix)
 | 
			
		||||
        # portproton --backup-prefix <PREFIX_NAME> <BACKUP_DIR>
 | 
			
		||||
        pw_create_prefix_backup_cli "$2" "$3"
 | 
			
		||||
        exit $?
 | 
			
		||||
        ;;
 | 
			
		||||
    --restore-prefix)
 | 
			
		||||
        # portproton --restore-prefix <PREFIX_BACKUP_FILE.ppack>
 | 
			
		||||
        pw_unpack_prefix_cli "$2"
 | 
			
		||||
        exit $?
 | 
			
		||||
        ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
### GUI ###
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user