Merge branch 'Boria138-db-cli' into devel
This commit is contained in:
		| @@ -5834,12 +5834,18 @@ Binding a game to a single node reduces memory‑access latency and limits costl | ||||
|     fi | ||||
|     export PW_WINE_CPU_TOPOLOGY | ||||
|  | ||||
|     for dont_touch_var in $DISABLE_EDIT_DB_LIST ; do | ||||
|         rm_from_array "PW_EDIT_DB_LIST" "$dont_touch_var" | ||||
|     done | ||||
|     edit_db_from_gui "${PW_EDIT_DB_LIST[@]}" LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL \ | ||||
|      if [[ "${PW_CLI}" != "1" ]] ; then | ||||
|         for dont_touch_var in $DISABLE_EDIT_DB_LIST ; do | ||||
|             rm_from_array "PW_EDIT_DB_LIST" "$dont_touch_var" | ||||
|         done | ||||
|      fi | ||||
|     PW_EDIT_DB_FINAL_LIST=("${PW_EDIT_DB_LIST[@]}" \ | ||||
|     LAUNCH_PARAMETERS PW_WINDOWS_VER PW_DLL_INSTALL \ | ||||
|     WINEDLLOVERRIDES PW_WINE_CPU_TOPOLOGY PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL \ | ||||
|     PW_LOCALE_SELECT PW_MESA_VK_WSI_PRESENT_MODE PW_AMD_VULKAN_USE PW_CPU_NUMA_NODE_INDEX PW_TASKSET_SLR | ||||
|     PW_LOCALE_SELECT PW_MESA_VK_WSI_PRESENT_MODE PW_AMD_VULKAN_USE PW_CPU_NUMA_NODE_INDEX PW_TASKSET_SLR) | ||||
|     export PW_EDIT_DB_FINAL_LIST | ||||
|  | ||||
|     edit_db_from_gui "${PW_EDIT_DB_FINAL_LIST[@]}" | ||||
|  | ||||
|     if [[ -z "$MANGOHUD_CONFIG" ]] ; then | ||||
|         MONITOR_HEIGHT="$(echo "$PW_SCREEN_RESOLUTION" | awk -F'x' '{print $2}')" | ||||
|   | ||||
| @@ -52,6 +52,12 @@ MISSING_DESKTOP_FILE="0" | ||||
|  | ||||
| unset PW_NO_RESTART_PPDB PW_DISABLED_CREATE_DB | ||||
|  | ||||
| if [[ ${1,,} == "cli" ]] ; then | ||||
|     export PW_CLI="1" | ||||
|     export PROCESS_LOG="1" | ||||
|     shift | ||||
| fi | ||||
|  | ||||
| if [[ "${1,,}" =~ .ppack$ ]] ; then | ||||
|     export PW_NO_RESTART_PPDB="1" | ||||
|     export PW_DISABLED_CREATE_DB="1" | ||||
| @@ -281,10 +287,12 @@ then PW_TERM="env LANG=C xterm -fullscreen -bg black -fg white -e" | ||||
| else PW_TERM="env LANG=C xterm -bg black -fg white -e" | ||||
| fi | ||||
|  | ||||
| pw_check_and_download_plugins | ||||
| if [[ "${PW_CLI}" != 1 ]] ; then | ||||
|     pw_check_and_download_plugins | ||||
| fi | ||||
|  | ||||
| # check skip update | ||||
| if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then | ||||
| if [[ "${SKIP_CHECK_UPDATES}" != 1  || "${PW_CLI}" != 1 ]] ; then | ||||
|     pw_port_update | ||||
|  | ||||
|     PW_FILESYSTEM=$(stat -f -c %T "${PORT_WINE_PATH}") | ||||
| @@ -385,13 +393,6 @@ if [[ $(basename "${portwine_exe,,}") =~ .ppack$ ]] ; then | ||||
| fi | ||||
|  | ||||
| ### CLI ### | ||||
|  | ||||
| if [[ ${1,,} == "cli" ]] ; then | ||||
|     export PW_CLI="1" | ||||
|     export PROCESS_LOG="1" | ||||
|     shift | ||||
| fi | ||||
|  | ||||
| get_wine_and_pfx () { | ||||
|     [[ -n $1 ]] && export PW_WINE_USE="$1" | ||||
|     [[ -n $2 ]] && export PW_PREFIX_NAME="$2" | ||||
| @@ -455,6 +456,53 @@ $(echo $files_from_autoinstall | awk '{for (i = 1; i <= NF; i++) {if (i % 10 == | ||||
|         edit_db_from_gui $keys_all | ||||
|         exit 0 | ||||
|         ;; | ||||
|     --list-db) | ||||
|         export pw_yad="" | ||||
|         gui_edit_db | ||||
|         pw_skip_get_info | ||||
|         declare -A NODE_MAP | ||||
|         INDEX=0 | ||||
|         while read -r line; do | ||||
|             NODE_MAP[$INDEX]="$line" | ||||
|             ((INDEX++)) | ||||
|         done < <(lscpu | grep -Po "NUMA node\d+ CPU\(s\):\s+\K.*" 2>/dev/null || true) | ||||
|         for i in "${!NODE_MAP[@]}"; do | ||||
|             echo "NUMA_NODE_${i}=${NODE_MAP[$i]}" | ||||
|         done | ||||
|         echo "IS_AMD=$([[ $(check_vendor_gpu) == \"amd\" ]] && echo true || echo false)" | ||||
|         echo "LOGICAL_CORE_OPTIONS=$GET_LOGICAL_CORE" | ||||
|         [[ -n "$LOCALE_LIST" ]] && echo "LOCALE_LIST=$LOCALE_LIST" | ||||
|         [[ -n "$AMD_VULKAN_DRIVER_LIST" ]] && echo "AMD_VULKAN_DRIVER_LIST=$AMD_VULKAN_DRIVER_LIST" | ||||
|         for var in "${PW_EDIT_DB_FINAL_LIST[@]}"; do | ||||
|             if echo "$DISABLE_EDIT_DB_LIST" | grep -qw "$var"; then | ||||
|                 echo "$var blocked" | ||||
|             else | ||||
|                 echo "$var" | ||||
|             fi | ||||
|         done | ||||
|         exit 0 | ||||
|         ;; | ||||
|     --show-ppdb) | ||||
|         # --show-ppdb /полный/путь/до/файла.exe | ||||
|         ppdb_path="$2" | ||||
|  | ||||
|         if [[ "$ppdb_path" == *.exe ]]; then | ||||
|             ppdb_path="${ppdb_path}.ppdb" | ||||
|         fi | ||||
|  | ||||
|         if [[ ! -f "$ppdb_path" ]]; then | ||||
|             echo "PPDB file not found: $ppdb_path" | ||||
|             exit 1 | ||||
|         fi | ||||
|  | ||||
|         grep -E '^export ' "$ppdb_path" | sed '/^[[:space:]]*$/d' | while IFS='=' read -r var val; do | ||||
|             [[ -z "$var" ]] && continue | ||||
|             var_name=$(echo "$var" | sed 's/^export[[:space:]]*//') | ||||
|             val_clean=$(echo "$val" | sed 's/^"//; s/"$//') | ||||
|             echo "${var_name}=${val_clean}" | ||||
|         done | ||||
|         exit 0 | ||||
|         ;; | ||||
|     --backup-prefix) | ||||
|         # portproton --backup-prefix <PREFIX_NAME> <BACKUP_DIR> | ||||
|         pw_create_prefix_backup "$2" "$3" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user