@@ -14,6 +14,7 @@ PROG="$0"
14
14
[ -z " $WINEPREFIX " ] && export WINEPREFIX=" $HOME /.wine"
15
15
[ -z " $WINE " ] && WINE=" wine"
16
16
[ -z " $PREFIX " ] && export PREFIX=" $HOME /.local"
17
+ [ -z " $WINETRICKS " ] && WINETRICKS=" winetricks"
17
18
FORCE=false
18
19
GUI=true
19
20
SHORTCUT=true
@@ -26,9 +27,9 @@ function show-help {
26
27
echo " Script to install Hammer prerequisite software into a wineprefix"
27
28
echo " USAGE: $PROG [--force] [--help] [--wineprefix=wineprefix] [--wine=wine] [--prefix=prefix]"
28
29
echo " --force - Skip all validity checks. This may be necessary if a download hash changes"
29
- echo " --wineprefix= prefix - Override default wineprefix"
30
- echo " --wine= wine - Use this wine executable"
31
- echo " --prefix=prefix - Override installation prefix "
30
+ echo " --prefix prefix - Override default wineprefix"
31
+ echo " --wine wine - Use this wine executable"
32
+ echo " --winetricks winetricks - Use this as the winetricks executable "
32
33
echo " --no-gui - Disable use of Zenity for UI"
33
34
echo " --no-shortcut - Do not install shortcuts"
34
35
if [ $# -gt 0 ]; then
@@ -79,28 +80,31 @@ function download {
79
80
wget -nv -O " $F " " $1 "
80
81
if ! " $FORCE " ; then
81
82
SUM=" $( sha256sum " $F " | grep -Eo " ^[^ ]+" ) "
82
- if [[ " $SUM " != " $2 " ]]; then
83
- error " Checksum validation for file $1 failed!\nExpected: $2 \nActual: $SUM \n\nYou may pass --force to disable this check"
84
- exit 1
85
- fi
86
83
fi
87
84
echo " $F "
88
85
}
89
86
90
87
# Argument parsing
91
- for a in $@ ; do
92
- case $a in
88
+ while test $# -gt 0 ; do
89
+ case $1 in
93
90
--force)
94
91
FORCE=true
95
92
;;
96
- --wineprefix* )
97
- export WINEPREFIX=" $( echo $a | sed ' s/--wineprefix//g' ) "
93
+ --wineprefix)
94
+ export WINEPREFIX=" $2 "
95
+ shift 2
96
+ ;;
97
+ --prefix)
98
+ export PREFIX=" $2 "
99
+ shift 2
98
100
;;
99
- --wine* )
100
- WINE=" $( echo $a | sed ' s/--wine//g' ) "
101
+ --wine)
102
+ WINE=" $2 "
103
+ shift 2
101
104
;;
102
- --prefix* )
103
- export PREFIX=" $( echo $a | sed ' s/--prefix//g' ) "
105
+ --winetricks)
106
+ WINETRICKS=" $2 "
107
+ shift 2
104
108
;;
105
109
--help)
106
110
show-help 0
@@ -110,6 +114,12 @@ for a in $@; do
110
114
;;
111
115
--no-shortcut)
112
116
SHORTCUT=false
117
+ GUI=0
118
+ shift
119
+ ;;
120
+ --no-shortcut)
121
+ SHORTCUT=0
122
+ shift
113
123
;;
114
124
* )
115
125
echo " Unknown argument $a "
@@ -137,7 +147,7 @@ if "$GUI"; then
137
147
IFS=' ,'
138
148
VALS=($RESPONSE )
139
149
unset IFS
140
- [ ! -z " ${VALS[0]} " ] && export WINEPREFIX=" ${VALS[0]} "
150
+ [ ! -z " ${VALS[0]} " ] && export WINEPREFIX=" $( readlink -mf " $( eval echo " $ {VALS[0]}" ) " ) "
141
151
[ ! -z " ${VALS[1]} " ] && export WINE=" ${VALS[1]} "
142
152
[ ! -z " ${VALS[2]} " ] && export PREFIX=" ${VALS[2]} "
143
153
case " ${VALS[3]} " in
@@ -204,6 +214,12 @@ function install-vcrun2019 {
204
214
rm -f " $FILE " || true # Eat errors here
205
215
}
206
216
217
+ function install-dxvk {
218
+ echo " Installing dxvk..."
219
+ if ! " $WINETRICKS " dlls dxvk; then
220
+ error " Failed to install dxvk!\nYou may need to do this manually."
221
+ fi
222
+ }
207
223
208
224
# Ask the user what to install
209
225
if " $GUI " ; then
@@ -215,14 +231,14 @@ if "$GUI"; then
215
231
--column=" Component Name" \
216
232
--width=350 \
217
233
--separator=" ," \
218
- TRUE " vcrun2019" )
234
+ TRUE " vcrun2019" \
235
+ TRUE " dxvk" )
219
236
IFS=' ,'
220
237
VALS=($RESPONSE )
221
238
unset IFS
222
- for i in " ${VALS[$@]} " ; do
223
- if [ " $i " == " vcrun2019" ]; then
224
- install-vcrun2019
225
- fi
239
+ for i in " ${VALS[@]} " ; do
240
+ echo $i
241
+ install-$i
226
242
done
227
243
fi
228
244
0 commit comments