Hardmode in PP number two
This commit is contained in:
parent
0483902b17
commit
1b7dcf3c1a
@ -248,9 +248,7 @@ eval_translations () {
|
|||||||
|
|
||||||
create_translations () {
|
create_translations () {
|
||||||
local po_file msgid msgstr
|
local po_file msgid msgstr
|
||||||
if [[ ! -d "${PW_CACHE_LANG_PATH}" ]] ; then
|
[[ ! -d $PW_CACHE_LANG_PATH ]] && create_new_dir "$PW_CACHE_LANG_PATH"
|
||||||
create_new_dir "${PW_CACHE_LANG_PATH}"
|
|
||||||
fi
|
|
||||||
cat << EOF > "${PW_CACHE_LANG_PATH}/$LANGUAGE"
|
cat << EOF > "${PW_CACHE_LANG_PATH}/$LANGUAGE"
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
TRANSLATIONS_VER=$scripts_install_ver
|
TRANSLATIONS_VER=$scripts_install_ver
|
||||||
@ -849,81 +847,63 @@ debug_timer () {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Поиск нужного .desktop файла по $portwine_exe
|
# Поиск нужного .desktop файла по $portwine_exe (для показа в комментариях нужного времени)
|
||||||
|
# Параллельное создание базы по времени после завершения приложения
|
||||||
search_desktop_file () {
|
search_desktop_file () {
|
||||||
local count desktop_file desktop_file_new EXEC_DESKTOP TIME_CURRENT_PROXY EXEC_DESKTOP_NEW TIME_TOTAL i j df
|
local desktop_file desktop_file_new EXEC_DESKTOP EXEC_DESKTOP_NEW TIME_TOTAL line1 line2 ENTRY_POINT_FIND
|
||||||
unset TIME_CURRENT_ARRAY DESKTOP_FILES_ARRAY
|
unset TIME_CURRENT
|
||||||
count=0
|
|
||||||
for desktop_file in "$PORT_WINE_PATH"/* ; do
|
for desktop_file in "$PORT_WINE_PATH"/* ; do
|
||||||
desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}"
|
desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}"
|
||||||
if [[ $desktop_file_new =~ .desktop$ ]] ; then
|
if [[ $desktop_file_new =~ .desktop$ ]] ; then
|
||||||
if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then
|
if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then
|
||||||
while IFS= read -r line ; do
|
while IFS= read -r line1 ; do
|
||||||
if [[ $line =~ ^Exec= ]] ; then
|
if [[ $line1 =~ ^Exec= ]] ; then
|
||||||
if check_flatpak ; then
|
if check_flatpak ; then
|
||||||
EXEC_DESKTOP=${line//Exec=flatpak run ru.linux_gaming.PortProton /}
|
EXEC_DESKTOP=${line1//Exec=flatpak run ru.linux_gaming.PortProton /}
|
||||||
else
|
else
|
||||||
EXEC_DESKTOP=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
EXEC_DESKTOP=${line1//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
[[ $line =~ ^#Time= ]] && TIME_CURRENT_PROXY=${line//#Time=/}
|
|
||||||
done < "$desktop_file"
|
done < "$desktop_file"
|
||||||
# Для конвертации существующих .desktop файлов flatpak в натив и наоборот
|
while IFS=" " read -r -a line2 ; do
|
||||||
if [[ $EXEC_DESKTOP =~ ^"Exec=flatpak run ru.linux_gaming.PortProton " ]] ; then
|
if [[ ${line2[0]} == ${portwine_exe// /#@_@#} ]] ; then
|
||||||
sed -i "s|Exec=flatpak run ru.linux_gaming.PortProton|Exec=env \"$PORT_SCRIPTS_PATH/start.sh\"|" "$desktop_file"
|
TIME_CURRENT=${line2[2]}
|
||||||
elif [[ $EXEC_DESKTOP =~ ^"Exec=env \"$PORT_SCRIPTS_PATH/start.sh\" " ]] ; then
|
|
||||||
sed -i "s|Exec=env \"$PORT_SCRIPTS_PATH/start.sh\"|Exec=flatpak run ru.linux_gaming.PortProton|" "$desktop_file"
|
|
||||||
fi
|
fi
|
||||||
|
if [[ ${line2[1]} =~ ^$ENTRY_POINT ]] ; then
|
||||||
|
ENTRY_POINT_FIND=$ENTRY_POINT
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done < "$PW_DATABASE_PATH/times_current"
|
||||||
EXEC_DESKTOP_NEW=${EXEC_DESKTOP//\"/}
|
EXEC_DESKTOP_NEW=${EXEC_DESKTOP//\"/}
|
||||||
if [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then
|
if [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then
|
||||||
if [[ -n $TIME_CURRENT_PROXY ]] ; then
|
DESKTOP_SEARCH_FILE=$desktop_file
|
||||||
TIME_CURRENT=$TIME_CURRENT_PROXY
|
break
|
||||||
TIME_CURRENT_ARRAY+=($TIME_CURRENT)
|
|
||||||
# Если существует несколько .desktop файлов на один и тот же .exe файл,
|
|
||||||
# то среди них время берётся из того .desktop файла, в котором проведено дольше времени
|
|
||||||
# и данное время будет потом записываться во все .desktop файлы у которых общий .exe файл
|
|
||||||
if [[ -n ${TIME_CURRENT_ARRAY[1]} ]] ; then
|
|
||||||
for i in "${!TIME_CURRENT_ARRAY[@]}" ; do
|
|
||||||
for j in "${!TIME_CURRENT_ARRAY[@]}" ; do
|
|
||||||
if (( ${TIME_CURRENT_ARRAY[$i]} > ${TIME_CURRENT_ARRAY[$j]} )) ; then
|
|
||||||
tmp=${TIME_CURRENT_ARRAY[$i]}
|
|
||||||
TIME_CURRENT_ARRAY[i]=${TIME_CURRENT_ARRAY[$j]}
|
|
||||||
TIME_CURRENT_ARRAY[j]=$tmp
|
|
||||||
fi
|
fi
|
||||||
done
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
TIME_CURRENT="${TIME_CURRENT_ARRAY[0]}"
|
|
||||||
# Для битых #Time=
|
|
||||||
if [[ ! $TIME_CURRENT =~ [0-9]+ ]] \
|
|
||||||
|| (( TIME_CURRENT >= 999999999 )) ; then
|
|
||||||
TIME_CURRENT="0"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
DESKTOP_FILES_ARRAY["$count"]="$desktop_file"
|
|
||||||
(( count++ ))
|
|
||||||
fi
|
|
||||||
unset TIME_CURRENT_PROXY
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
IFS="$orig_IFS"
|
IFS="$orig_IFS"
|
||||||
|
|
||||||
[[ -z $TIME_CURRENT ]] && TIME_CURRENT=0
|
|
||||||
export TIME_CURRENT
|
|
||||||
|
|
||||||
if [[ -n $PW_TIME_IN_GAME ]] ; then
|
if [[ -n $PW_TIME_IN_GAME ]] ; then
|
||||||
|
if [[ -n $TIME_CURRENT ]] ; then
|
||||||
TIME_TOTAL=$(( TIME_CURRENT + PW_TIME_IN_GAME ))
|
TIME_TOTAL=$(( TIME_CURRENT + PW_TIME_IN_GAME ))
|
||||||
for df in "${DESKTOP_FILES_ARRAY[@]}" ; do
|
sed -i "s|${portwine_exe// /#@_@#} $ENTRY_POINT $TIME_CURRENT|${portwine_exe// /#@_@#} $ENTRY_POINT $TIME_TOTAL|g" "$PW_DATABASE_PATH/times_current"
|
||||||
sed -i '/^#Time=/d' "$df"
|
|
||||||
echo "#Time=$TIME_TOTAL" >> "$df"
|
|
||||||
done
|
|
||||||
else
|
else
|
||||||
for df in "${DESKTOP_FILES_ARRAY[@]}" ; do
|
TIME_TOTAL=$(( 0 + PW_TIME_IN_GAME ))
|
||||||
sed -i '/^#Time=/d' "$df"
|
echo "${portwine_exe// /#@_@#} $ENTRY_POINT $TIME_TOTAL" >> "$PW_DATABASE_PATH/times_current"
|
||||||
echo "#Time=$TIME_CURRENT" >> "$df"
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
if [[ -n $ENTRY_POINT_FIND ]] ; then
|
||||||
|
TIME_CURRENT=${line2[2]}
|
||||||
|
if [[ -n $PW_TIME_IN_GAME ]]
|
||||||
|
then TIME_TOTAL=$(( TIME_CURRENT + PW_TIME_IN_GAME ))
|
||||||
|
else TIME_TOTAL=$TIME_CURRENT
|
||||||
|
fi
|
||||||
|
sed -i "s|${line2[0]} ${line2[1]} ${line2[2]}|${portwine_exe// /#@_@#} $ENTRY_POINT_FIND $TIME_TOTAL|g" "$PW_DATABASE_PATH/times_current"
|
||||||
|
else
|
||||||
|
TIME_CURRENT=0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
export TIME_CURRENT DESKTOP_SEARCH_FILE
|
||||||
}
|
}
|
||||||
|
|
||||||
create_name_desktop () {
|
create_name_desktop () {
|
||||||
@ -938,9 +918,8 @@ create_name_desktop () {
|
|||||||
elif [[ -n $name_desktop ]] ; then
|
elif [[ -n $name_desktop ]] ; then
|
||||||
DESKTOP_NAME_FILE="$name_desktop"
|
DESKTOP_NAME_FILE="$name_desktop"
|
||||||
unset name_desktop
|
unset name_desktop
|
||||||
elif [[ -n ${DESKTOP_FILES_ARRAY[0]} ]] \
|
elif [[ -n $DESKTOP_SEARCH_FILE ]] ; then
|
||||||
&& [[ -z ${DESKTOP_FILES_ARRAY[1]} ]] ; then
|
DESKTOP_NAME_FILE="${DESKTOP_SEARCH_FILE//"$PORT_WINE_PATH/"/}"
|
||||||
DESKTOP_NAME_FILE="${DESKTOP_FILES_ARRAY[0]//"$PORT_WINE_PATH/"/}"
|
|
||||||
DESKTOP_NAME_FILE="${DESKTOP_NAME_FILE//.desktop/}"
|
DESKTOP_NAME_FILE="${DESKTOP_NAME_FILE//.desktop/}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -2483,6 +2462,7 @@ pw_create_gui_png () {
|
|||||||
fi
|
fi
|
||||||
if [[ -z "$PORTPROTON_NAME" ]] \
|
if [[ -z "$PORTPROTON_NAME" ]] \
|
||||||
|| [[ -z "$FILE_DESCRIPTION" ]] \
|
|| [[ -z "$FILE_DESCRIPTION" ]] \
|
||||||
|
|| [[ -z "$ENTRY_POINT" ]] \
|
||||||
|| [[ "$PW_NO_RESTART_PPDB" == "1" ]]
|
|| [[ "$PW_NO_RESTART_PPDB" == "1" ]]
|
||||||
then
|
then
|
||||||
if [[ -n "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then
|
if [[ -n "${PORTWINE_CREATE_SHORTCUT_NAME}" ]] ; then
|
||||||
@ -2492,6 +2472,7 @@ pw_create_gui_png () {
|
|||||||
if timeout 3 exiftool "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp" ; then
|
if timeout 3 exiftool "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp" ; then
|
||||||
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
|
ENTRY_POINT=$(sed -n 's/^Entry Point\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
else
|
else
|
||||||
print_error "exiftool - broken!"
|
print_error "exiftool - broken!"
|
||||||
fi
|
fi
|
||||||
@ -2500,6 +2481,7 @@ pw_create_gui_png () {
|
|||||||
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp"
|
env PERL5LIB="${PW_PLUGINS_PATH}/portable/lib/perl5" "${PW_PLUGINS_PATH}/portable/bin/exiftool" "$portwine_exe" &> "${PW_TMPFS_PATH}/exiftool.tmp"
|
||||||
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
PW_PRODUCTNAME=$(sed -n 's/^Product Name\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
FILE_DESCRIPTION=$(sed -n 's/^File Description\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
|
ENTRY_POINT=$(sed -n 's/^Entry Point\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$PW_PRODUCTNAME" =~ (Launcher|RU) ]]
|
if [[ "$PW_PRODUCTNAME" =~ (Launcher|RU) ]]
|
||||||
@ -2518,7 +2500,7 @@ pw_create_gui_png () {
|
|||||||
|
|
||||||
PORTPROTON_NAME="$(echo "${PORTPROTON_NAME}" | sed "s/\`//g" | sed "s/\"//g" | sed "s/'//g" | sed "s/\!//g")"
|
PORTPROTON_NAME="$(echo "${PORTPROTON_NAME}" | sed "s/\`//g" | sed "s/\"//g" | sed "s/'//g" | sed "s/\!//g")"
|
||||||
export PORTPROTON_NAME
|
export PORTPROTON_NAME
|
||||||
edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION
|
edit_db_from_gui PORTPROTON_NAME FILE_DESCRIPTION ENTRY_POINT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
resize_png "$portwine_exe" "${PORTPROTON_NAME}" "128"
|
resize_png "$portwine_exe" "${PORTPROTON_NAME}" "128"
|
||||||
@ -5609,12 +5591,8 @@ portwine_create_shortcut () {
|
|||||||
|
|
||||||
edit_user_conf_from_gui PW_SHORTCUT_MENU PW_SHORTCUT_DESKTOP PW_SHORTCUT_STEAM
|
edit_user_conf_from_gui PW_SHORTCUT_MENU PW_SHORTCUT_DESKTOP PW_SHORTCUT_STEAM
|
||||||
|
|
||||||
if [[ -n ${DESKTOP_FILES_ARRAY[0]} && $name_desktop != "$DESKTOP_NAME_FILE" ]] || [[ -n ${DESKTOP_FILES_ARRAY[1]} ]] ; then
|
if [[ -n $DESKTOP_SEARCH_FILE && $name_desktop != "$DESKTOP_NAME_FILE" ]] ; then
|
||||||
if yad_question "${translations[A higher number of duplicate desktop files were found for this file.\\nShould I delete the extra ones or not?]}" ; then
|
rm -f "$DESKTOP_SEARCH_FILE"
|
||||||
for rm in "${DESKTOP_FILES_ARRAY[@]}" ; do
|
|
||||||
rm -f "$rm"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
try_remove_file "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
try_remove_file "${PORT_WINE_PATH}/${name_desktop}.desktop"
|
||||||
fi
|
fi
|
||||||
|
@ -151,6 +151,7 @@ source "${PORT_SCRIPTS_PATH}/var"
|
|||||||
export STEAM_SCRIPTS="${PORT_WINE_PATH}/steam_scripts"
|
export STEAM_SCRIPTS="${PORT_WINE_PATH}/steam_scripts"
|
||||||
export PW_PLUGINS_PATH="${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}"
|
export PW_PLUGINS_PATH="${PORT_WINE_TMP_PATH}/plugins${PW_PLUGINS_VER}"
|
||||||
export PW_CACHE_LANG_PATH="${PORT_WINE_TMP_PATH}/cache_lang/"
|
export PW_CACHE_LANG_PATH="${PORT_WINE_TMP_PATH}/cache_lang/"
|
||||||
|
export PW_DATABASE_PATH="${PORT_WINE_TMP_PATH}/database/"
|
||||||
export PW_GUI_ICON_PATH="${PORT_WINE_PATH}/data/img/gui"
|
export PW_GUI_ICON_PATH="${PORT_WINE_PATH}/data/img/gui"
|
||||||
export PW_GUI_THEMES_PATH="${PORT_WINE_PATH}/data/themes"
|
export PW_GUI_THEMES_PATH="${PORT_WINE_PATH}/data/themes"
|
||||||
export pw_yad="${PW_GUI_THEMES_PATH}/gui/yad_gui_pp"
|
export pw_yad="${PW_GUI_THEMES_PATH}/gui/yad_gui_pp"
|
||||||
@ -178,9 +179,9 @@ try_remove_file "${PW_TMPFS_PATH}/update_pfx_log"
|
|||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
source "${USER_CONF}"
|
source "${USER_CONF}"
|
||||||
|
|
||||||
if [[ ! -f "${PW_CACHE_LANG_PATH}/$LANGUAGE" ]] ; then
|
[[ ! -d $PW_DATABASE_PATH ]] && create_new_dir "$PW_DATABASE_PATH"
|
||||||
create_translations
|
[[ ! -f $PW_DATABASE_PATH/times_current ]] && touch "$PW_DATABASE_PATH/times_current"
|
||||||
fi
|
[[ ! -f "${PW_CACHE_LANG_PATH}/$LANGUAGE" ]] && create_translations
|
||||||
|
|
||||||
unset translations
|
unset translations
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
@ -616,17 +617,16 @@ else
|
|||||||
desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}"
|
desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}"
|
||||||
if [[ $desktop_file_new =~ .desktop$ ]] ; then
|
if [[ $desktop_file_new =~ .desktop$ ]] ; then
|
||||||
if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then
|
if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then
|
||||||
while IFS= read -r line ; do
|
while IFS= read -r line1 ; do
|
||||||
if [[ $line =~ ^Exec= ]] ; then
|
if [[ $line1 =~ ^Exec= ]] ; then
|
||||||
if check_flatpak ; then
|
if check_flatpak ; then
|
||||||
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line//Exec=flatpak run ru.linux_gaming.PortProton /}
|
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line1//Exec=flatpak run ru.linux_gaming.PortProton /}
|
||||||
else
|
else
|
||||||
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line1//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
[[ $line =~ ^Icon= ]] && PW_ICON_PATH["$AMOUNT_GENERATE_BUTTONS"]="${line//Icon=/}"
|
[[ $line1 =~ ^Icon= ]] && PW_ICON_PATH["$AMOUNT_GENERATE_BUTTONS"]=${line1//Icon=/}
|
||||||
[[ $line =~ ^#Time= ]] && PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]="${line//#Time=/}"
|
[[ $line1 =~ ^#NEW_DESKTOP ]] && NEW_DESKTOP=1
|
||||||
[[ $line =~ ^#NEW_DESKTOP ]] && NEW_DESKTOP=1
|
|
||||||
done < "$desktop_file"
|
done < "$desktop_file"
|
||||||
PW_ALL_DF["$AMOUNT_GENERATE_BUTTONS"]="$desktop_file_new"
|
PW_ALL_DF["$AMOUNT_GENERATE_BUTTONS"]="$desktop_file_new"
|
||||||
if [[ $SORT_WITH_TIME == enabled ]] && [[ $NEW_DESKTOP == 1 ]] ; then
|
if [[ $SORT_WITH_TIME == enabled ]] && [[ $NEW_DESKTOP == 1 ]] ; then
|
||||||
@ -636,29 +636,27 @@ else
|
|||||||
else
|
else
|
||||||
PW_AMOUNT_OLD_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
|
PW_AMOUNT_OLD_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
|
||||||
fi
|
fi
|
||||||
# Для конвертация .desktop файлов flatpak в натив и наоборот
|
# Для конвертации существующих .desktop файлов flatpak в натив и наоборот
|
||||||
if [[ ${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]} =~ ^"Exec=flatpak run ru.linux_gaming.PortProton " ]] ; then
|
if [[ ${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]} =~ ^"Exec=flatpak run ru.linux_gaming.PortProton " ]] ; then
|
||||||
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//Exec=flatpak run ru.linux_gaming.PortProton /}
|
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//Exec=flatpak run ru.linux_gaming.PortProton /}
|
||||||
NEED_FIXES_DESKTOP=1
|
sed -i "s|Exec=flatpak run ru.linux_gaming.PortProton|Exec=env \"$PORT_SCRIPTS_PATH/start.sh\"|" "$desktop_file"
|
||||||
elif [[ ${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]} =~ ^"Exec=env \"$PORT_SCRIPTS_PATH/start.sh\" " ]] ; then
|
elif [[ ${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]} =~ ^"Exec=env \"$PORT_SCRIPTS_PATH/start.sh\" " ]] ; then
|
||||||
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
||||||
NEED_FIXES_DESKTOP=1
|
sed -i "s|Exec=env \"$PORT_SCRIPTS_PATH/start.sh\"|Exec=flatpak run ru.linux_gaming.PortProton|" "$desktop_file"
|
||||||
fi
|
fi
|
||||||
# Для фикса битых #Time=
|
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//\"/}
|
||||||
if [[ ! ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} =~ [0-9]+ ]] \
|
while IFS=" " read -r -a line2 ; do
|
||||||
|| (( ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} >= 999999999 )) \
|
if [[ ${line2[0]//#@_@#/ } == ${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]} ]] ; then
|
||||||
|| [[ $NEED_FIXES_DESKTOP == 1 ]]
|
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]=${line2[2]}
|
||||||
then
|
break
|
||||||
portwine_exe=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//\"/}
|
else
|
||||||
search_desktop_file
|
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]=0
|
||||||
unset portwine_exe NEED_FIXES_DESKTOP
|
|
||||||
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]=$TIME_CURRENT
|
|
||||||
fi
|
fi
|
||||||
|
done < "$PW_DATABASE_PATH/times_current"
|
||||||
(( AMOUNT_GENERATE_BUTTONS++ ))
|
(( AMOUNT_GENERATE_BUTTONS++ ))
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Переопределение элементов в массивах в зависимости от PW_GAME_TIME, от большего значения к меньшему.
|
# Переопределение элементов в массивах в зависимости от PW_GAME_TIME, от большего значения к меньшему.
|
||||||
# 10 миллисекунд на 40 .desktop файлов, работает быстро
|
# 10 миллисекунд на 40 .desktop файлов, работает быстро
|
||||||
if [[ $SORT_WITH_TIME == enabled ]] && [[ -n ${PW_GAME_TIME[1]} ]] ; then
|
if [[ $SORT_WITH_TIME == enabled ]] && [[ -n ${PW_GAME_TIME[1]} ]] ; then
|
||||||
@ -683,16 +681,14 @@ else
|
|||||||
done
|
done
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Генерация .desktop баттанов для главного меню
|
# Генерация .desktop баттанов для главного меню
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
PW_GENERATE_BUTTONS="--field= ${translations[Create shortcut...]}!${PW_GUI_ICON_PATH}/find_48.svg!:FBTNR%@bash -c \"button_click --normal pw_find_exe\"%"
|
PW_GENERATE_BUTTONS="--field= ${translations[Create shortcut...]}!${PW_GUI_ICON_PATH}/find_48.svg!:FBTNR%@bash -c \"button_click --normal pw_find_exe\"%"
|
||||||
for dp in "${PW_AMOUNT_NEW_DESKTOP[@]}" "${PW_AMOUNT_OLD_DESKTOP[@]}" ; do
|
for dp in "${PW_AMOUNT_NEW_DESKTOP[@]}" "${PW_AMOUNT_OLD_DESKTOP[@]}" ; do
|
||||||
PW_NAME_D_ICON_48="${PW_ICON_PATH[dp]%.png}_48"
|
PW_NAME_D_ICON_48="${PW_ICON_PATH[dp]%.png}_48"
|
||||||
PW_NAME_D_ICON_128="${PW_ICON_PATH[dp]%.png}"
|
PW_NAME_D_ICON_128="${PW_ICON_PATH[dp]%.png}"
|
||||||
PW_NAME_D_ICON_NEW="${PW_NAME_D_ICON[dp]//\"/}"
|
resize_png "$PW_NAME_D_ICON" "${PW_NAME_D_ICON_48//"${PORT_WINE_PATH}/data/img/"/}" "48"
|
||||||
resize_png "$PW_NAME_D_ICON_NEW" "${PW_NAME_D_ICON_48//"${PORT_WINE_PATH}/data/img/"/}" "48"
|
resize_png "$PW_NAME_D_ICON" "${PW_NAME_D_ICON_128//"${PORT_WINE_PATH}/data/img/"/}" "128"
|
||||||
resize_png "$PW_NAME_D_ICON_NEW" "${PW_NAME_D_ICON_128//"${PORT_WINE_PATH}/data/img/"/}" "128"
|
|
||||||
|
|
||||||
PW_DESKTOP_FILES="${PW_ALL_DF[$dp]}"
|
PW_DESKTOP_FILES="${PW_ALL_DF[$dp]}"
|
||||||
PW_DESKTOP_FILES_SHOW="$PW_DESKTOP_FILES"
|
PW_DESKTOP_FILES_SHOW="$PW_DESKTOP_FILES"
|
||||||
|
Loading…
Reference in New Issue
Block a user