From 28e69c77f2cf051a1f91d5c3c4bf659175c2f53e Mon Sep 17 00:00:00 2001 From: Htylol Date: Fri, 4 Oct 2024 13:38:45 +0500 Subject: [PATCH] To sort need to use AI_TOP_GAMES --- .../{PW_004_BATTLE_NET => PW_BATTLE_NET} | 0 .../pw_autoinstall/{PW_003_EPIC => PW_EPIC} | 0 .../pw_autoinstall/{PW_001_LGC => PW_LGC} | 0 .../scripts/pw_autoinstall/PW_RETROARCH | 2 +- .../{PW_002_VKPLAY => PW_VKPLAY} | 0 data_from_portwine/scripts/start.sh | 53 ++++++++++++------- 6 files changed, 36 insertions(+), 19 deletions(-) rename data_from_portwine/scripts/pw_autoinstall/{PW_004_BATTLE_NET => PW_BATTLE_NET} (100%) rename data_from_portwine/scripts/pw_autoinstall/{PW_003_EPIC => PW_EPIC} (100%) rename data_from_portwine/scripts/pw_autoinstall/{PW_001_LGC => PW_LGC} (100%) rename data_from_portwine/scripts/pw_autoinstall/{PW_002_VKPLAY => PW_VKPLAY} (100%) diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_004_BATTLE_NET b/data_from_portwine/scripts/pw_autoinstall/PW_BATTLE_NET similarity index 100% rename from data_from_portwine/scripts/pw_autoinstall/PW_004_BATTLE_NET rename to data_from_portwine/scripts/pw_autoinstall/PW_BATTLE_NET diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_003_EPIC b/data_from_portwine/scripts/pw_autoinstall/PW_EPIC similarity index 100% rename from data_from_portwine/scripts/pw_autoinstall/PW_003_EPIC rename to data_from_portwine/scripts/pw_autoinstall/PW_EPIC diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_001_LGC b/data_from_portwine/scripts/pw_autoinstall/PW_LGC similarity index 100% rename from data_from_portwine/scripts/pw_autoinstall/PW_001_LGC rename to data_from_portwine/scripts/pw_autoinstall/PW_LGC diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_RETROARCH b/data_from_portwine/scripts/pw_autoinstall/PW_RETROARCH index 6d7bea2..cbac43a 100755 --- a/data_from_portwine/scripts/pw_autoinstall/PW_RETROARCH +++ b/data_from_portwine/scripts/pw_autoinstall/PW_RETROARCH @@ -1,6 +1,6 @@ #!/usr/bin/env bash # Author: chal55rus (Sergey P.) -# type: games +# type: emulators # name: RetroArch # image: retroarch # info_en: diff --git a/data_from_portwine/scripts/pw_autoinstall/PW_002_VKPLAY b/data_from_portwine/scripts/pw_autoinstall/PW_VKPLAY similarity index 100% rename from data_from_portwine/scripts/pw_autoinstall/PW_002_VKPLAY rename to data_from_portwine/scripts/pw_autoinstall/PW_VKPLAY diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 4a067ed..1b79910 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -697,39 +697,56 @@ else --field=" ${translations[Command line]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"${translations[Run wine cmd]}":"FBTN" '@bash -c "button_click --normal WINECMD"' \ --field=" ${translations[Regedit]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"${translations[Run wine regedit]}":"FBTN" '@bash -c "button_click --normal WINEREG"' 1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null & - AI_AMOUNT_GAMES="0" - AI_AMOUNT_EMULS="0" + AI_AMOUNT_GAMES="0" && AI_AMOUNT_EMULS="0" && AI_AMOUNT_ARRAY="0" + AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET" for ai_file in "$PORT_SCRIPTS_PATH"/pw_autoinstall/* ; do - AI_FILE="${ai_file//"$PORT_SCRIPTS_PATH/pw_autoinstall/"/}" while IFS= read -r line ; do [[ $line =~ "##########" ]] && break - [[ $line =~ "# type: " ]] && AI_TYPE="${line//# type: /}" - [[ $line =~ "# name: " ]] && AI_NAME="${line//# name: /}" - [[ $line =~ "# image: " ]] && AI_IMAGE="${line//# image: /}" + [[ $line =~ "# type: " ]] && AI_TYPE["$AI_AMOUNT_ARRAY"]="${line//# type: /}" + [[ $line =~ "# name: " ]] && AI_NAME["$AI_AMOUNT_ARRAY"]="${line//# name: /}" + [[ $line =~ "# image: " ]] && AI_IMAGE["$AI_AMOUNT_ARRAY"]="${line//# image: /}" if [[ "$LANGUAGE" == ru ]] ; then - [[ $line =~ "# info_ru: " ]] && AI_INFO="${line//# info_ru: /}" + [[ $line =~ "# info_ru: " ]] && AI_INFO["$AI_AMOUNT_ARRAY"]="${line//# info_ru: /}" else - [[ $line =~ "# info_en: " ]] && AI_INFO="${line//# info_en: /}" + [[ $line =~ "# info_en: " ]] && AI_INFO["$AI_AMOUNT_ARRAY"]="${line//# info_en: /}" fi done < "$ai_file" + AI_FILE="${ai_file//"$PORT_SCRIPTS_PATH/pw_autoinstall/"/}" + AI_FILE_CHECK="$AI_FILE=$AI_AMOUNT_ARRAY" + AI_FILE_ARRAY+=($AI_FILE) + if [[ $AI_TOP_GAMES =~ ${AI_FILE_CHECK//=*/} ]] ; then + AI_TRUE_FILE+=($AI_FILE_CHECK) + else + AI_FILE_UNSORTED+=($AI_AMOUNT_ARRAY) + fi + (( AI_AMOUNT_ARRAY++ )) + done - IFS=$'\n' - [[ -z "$AI_NAME" ]] && yad_error "Line: \"name\" not found in file $AI_FILE." - case $AI_TYPE in - games) - PW_GENERATE_BUTTONS_GAMES+="--field= $AI_NAME!$PW_GUI_ICON_PATH/$AI_IMAGE.png!$AI_INFO:FBTNR%@bash -c \"button_click --normal $AI_FILE\"%" + unset AI_FILE_SORTED + for ai_sort in $AI_TOP_GAMES ; do + if [[ ${AI_TRUE_FILE[*]} =~ $ai_sort ]] ; then + AI_TRUE_FILE_NEW=(${AI_TRUE_FILE[@]//$ai_sort=/}) + AI_FILE_SORTED+=(${AI_TRUE_FILE_NEW[@]//*=*/}) + fi + done + + IFS=$'\n' + for ai in "${AI_FILE_SORTED[@]}" "${AI_FILE_UNSORTED[@]}" ; do + case ${AI_TYPE[$ai]} in + games) + PW_GENERATE_BUTTONS_GAMES+="--field= ${AI_NAME[$ai]}!$PW_GUI_ICON_PATH/${AI_IMAGE[$ai]}.png!${AI_INFO[$ai]}:FBTNR%@bash -c \"button_click --normal ${AI_FILE_ARRAY[$ai]}\"%" (( AI_AMOUNT_GAMES++ )) ;; - emulators) - PW_GENERATE_BUTTONS_EMULS+="--field= $AI_NAME!$PW_GUI_ICON_PATH/$AI_IMAGE.png!$AI_INFO:FBTNR%@bash -c \"button_click --normal $AI_FILE\"%" + emulators) + PW_GENERATE_BUTTONS_EMULS+="--field= ${AI_NAME[$ai]}!$PW_GUI_ICON_PATH/${AI_IMAGE[$ai]}.png!${AI_INFO[$ai]}:FBTNR%@bash -c \"button_click --normal ${AI_FILE_ARRAY[$ai]}\"%" (( AI_AMOUNT_EMULS++ )) ;; - *) - yad_error "Line: \"type\" not found in file $AI_FILE or misspelled." + *) + yad_error "Line: \"type\" not found in file ${AI_FILE_ARRAY[$ai]} or misspelled." ;; esac - [[ -z $PW_DEBUG ]] && unset AI_FILE AI_TYPE AI_NAME AI_IMAGE AI_INFO done + unset AI_FILE_ARRAY AI_TYPE AI_NAME AI_IMAGE AI_INFO MAIN_GUI_ROWS_GAMES="$(( AI_AMOUNT_GAMES / MAIN_GUI_COLUMNS + 1 ))" MAIN_GUI_ROWS_EMULS="$(( AI_AMOUNT_EMULS / MAIN_GUI_COLUMNS + 1 ))"