Выполните ярлык POL непосредственно, не вызов сам POL

Как я могу выполнить цель ярлыка PlayOnLinux непосредственно (с корректной винной версией), на самом деле не вызов PlayOnLinux?

Моя проблема, что я должен выполнить ярлык в бездисплейном контейнере докера.

POL требует X присутствовать так, я мог обойти это при помощи:

xvfb-run playonlinux-bash ./path/to/shortcut

Но я не очень доволен этим решением, поскольку оно редко закрывается чисто... получающийся в сообщениях об ошибках..., таким образом, я всегда должен смотреть дважды, если бы все работало или если оно на самом деле отказало.

Для разъяснения принимая у нас есть ярлык POL как это:

#!/usr/bin/env playonlinux-bash
[ "$PLAYONLINUX" = "" ] && exit 0                             <- not needed
source "$PLAYONLINUX/lib/sources"                             <- works without POL
export WINEPREFIX="/home/test/.PlayOnLinux/wineprefix/test"   <- works without POL
export WINEDEBUG=""                                           <- works without POL
cd "/home/test/.PlayOnLinux/wineprefix/test/drive_c"          <- works without POL
POL_Wine text.exe "$@"                                        <- how do I do this 
                                                                 in a normal bash 
                                                                 without POL, using 
                                                                 the wine version 
                                                                 from POL
0
задан 19 July 2018 в 13:06

1 ответ

Все еще имея необходимость звонить POL_Wine Мне удалось избавиться от X зависимостей:

После дайвинга в исходный код POL (и понимая, что большая часть из него является просто набором кода удара),
Я придумал следующее:

#!/bin/bash 

# provide environment variables normally set by playonlinux-bash
PLAYONLINUX="/usr/share/playonlinux"
POL_USER_ROOT="/home/gamer/.PlayOnLinux"
POL_OS="Linux"
export WINEPREFIX="$POL_USER_ROOT/wineprefix/test"
export WINEDEBUG=""

# load POL functions without having to go through playonlinux-bash
source "$PLAYONLINUX/lib/sources"

# mock error reporting to prevent opening of error-windows
POL_Debug_Error() 
{
    echo "[POL] $1"
}

POL_Debug_Message() 
{
    echo "[POL] $1"
}

# finally start the target executable
cd "$WINEPREFIX/drive_c"    
POL_Wine test.exe "$@"
0
ответ дан 28 October 2019 в 07:50

Другие вопросы по тегам:

Похожие вопросы: