blob: aa30edebcedfe2eab57cf3121c6fed334c3b66dd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#!/bin/bash
XDG_DATA_HOME="${XDG_DATA_HOME-${HOME}/.local/share}"
PKHEX_DATA_DIRECTORY="${PKHEX_DATA_DIRECTORY-${XDG_DATA_HOME}/pkhex}"
PKHEX_VERSION_FILE="/usr/share/pkhex/version"
PKHEX_ARCHIVE="/usr/share/pkhex/PKHeX.tar.gz"
export WINEDEBUG="${WINEDEBUG--all}"
export WINEPREFIX="${WINEPREFIX-${XDG_DATA_HOME}/wineprefixes/pkhex}"
export DOTNET_SYSTEM_GLOBALIZATION_USENLS=1
export DOTNET_ROOT='C:\Program Files\dotnet'
DOTNET_ROOT_UNIX="${WINEPREFIX}/drive_c/Program Files/dotnet"
install_pkhex() {
local version
version="$(cat "${PKHEX_VERSION_FILE}")"
echo "Installing PKHeX ${version}..."
mkdir -p "${PKHEX_DATA_DIRECTORY}"
tar -xzf "${PKHEX_ARCHIVE}" -C "${PKHEX_DATA_DIRECTORY}"
printf '%s\n' "${version}" > "${PKHEX_DATA_DIRECTORY}/.version"
echo "Completed installing PKHeX ${version}."
}
update_pkhex() {
local available installed
available="$(cat "${PKHEX_VERSION_FILE}")"
installed="$(cat "${PKHEX_DATA_DIRECTORY}/.version" 2>/dev/null || true)"
if [ "${available}" != "${installed}" ]; then
echo "PKHeX update available: ${installed:-none} -> ${available}"
tar -xzf "${PKHEX_ARCHIVE}" -C "${PKHEX_DATA_DIRECTORY}"
printf '%s\n' "${available}" > "${PKHEX_DATA_DIRECTORY}/.version"
echo "PKHeX updated to ${available}."
fi
}
if [ ! -f "${DOTNET_ROOT_UNIX}/dotnet.exe" ]; then
echo 'Setting up the Wine prefix...'
winetricks -q --force dotnetdesktop10
echo 'Completed setting up the Wine prefix.'
fi
if [ ! -f "${PKHEX_DATA_DIRECTORY}/PKHeX.exe" ]; then
install_pkhex
else
update_pkhex
fi
case "$1" in
'kill')
wineserver -k "$2"
;;
'winetricks')
shift 1
winetricks "$@"
;;
'wine')
shift 1
wine "$@"
;;
'-h'|'--help'|'help')
echo 'Usage:'
printf '%s [command]\t\t\tRun PKHeX (with optional command)\n' "$(basename "$0")"
printf '%s kill [n]\t\t\tKill PKHeX (optinally with signal n)\n' "$(basename "$0")"
printf '%s wine [command]\t\tExecute Wine command on the Wine prefix (winecfg, regedit, ...)\n' "$(basename "$0")"
printf '%s winetricks [command]\t\tExecute Winetricks command on the Wine prefix\n' "$(basename "$0")"
printf '%s {-h --help help}\t\tDisplay this help\n' "$(basename "$0")"
;;
*)
cd /
wine "${PKHEX_DATA_DIRECTORY}"/PKHeX.exe "$@"
wineserver -w
;;
esac
|