summarylogtreecommitdiffstats
path: root/launcher
blob: b9f681a75f10e820494eda0f85105207b9d2dedb (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
#!/bin/bash

XDG_DATA_HOME="${XDG_DATA_HOME-${HOME}/.local/share}"
HELPER_DATA_DIRECTORY="${HELPER_DATA_DIRECTORY-${XDG_DATA_HOME}/usbhelper}"
export WINEDEBUG="${WINEDEBUG--all}"
export WINEPREFIX="${WINEPREFIX-${XDG_DATA_HOME}/wineprefixes/usbhelper}"
export WINEARCH="win32"

if [ ! -d "${WINEPREFIX}" ]; then
  echo 'Setting up the Wine prefix...'
  winetricks -q --force 'dotnet48'
  echo 'Completed setting up the Wine prefix.'
fi

if [ ! -d "${HELPER_DATA_DIRECTORY}" ]; then
  echo 'Installing USBHelper...'
  mkdir -p "${HELPER_DATA_DIRECTORY}"
  wget "https://github.com/FailedShack/USBHelperLauncher/releases/download/1.0/USBHelperLauncher-1.0.zip" -O /tmp/usbhelperlauncher.zip
  wget "https://downloads.dfagaming.nl/Wii%20U%20USB%20Helper%200.6.1.655.zip" -O /tmp/usbhelper.zip
  unzip /tmp/usbhelper.zip -d ${HELPER_DATA_DIRECTORY}
  unzip /tmp/usbhelperlauncher.zip -d ${HELPER_DATA_DIRECTORY}
  cd ${HELPER_DATA_DIRECTORY}
  wine USBHelperLauncher.exe
  wineserver -w
  echo 'Completed installing USBHelper.'
  exit
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 USBHelper (with optional command)\n' "$(basename "$0")"
    printf '%s kill [n]\t\t\tKill USBHelper (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 ${HELPER_DATA_DIRECTORY}
    wine USBHelperLauncher.exe "$@"
    wineserver -w
    ;;
esac