|
1 | 1 | #!/bin/bash |
| 2 | +# |
| 3 | +# shellcheck disable=SC1090,SC2220,SC2207,SC2068,SC2001 |
2 | 4 |
|
3 | | -have_fade=`type -p roon_fade` |
| 5 | +uninstall() { |
| 6 | + LOCAL="/usr/local" |
| 7 | + APPL=${LOCAL}/share/applications |
| 8 | + DOC=${LOCAL}/share/doc |
| 9 | + ROON=${LOCAL}/Roon |
| 10 | + ROONBIN=${ROON}/bin |
| 11 | + |
| 12 | + [ -d /usr/local/bin ] && { |
| 13 | + cd /usr/local/bin || exit 1 |
| 14 | + for command in "${ROONBIN}"/* |
| 15 | + do |
| 16 | + [ "${command}" == "${ROONBIN}/*" ] && continue |
| 17 | + b=$(basename "${command}") |
| 18 | + [ -L "$b" ] && { |
| 19 | + /bin/ls -l "$b" | grep ${ROON} > /dev/null && sudo rm -f "$b" |
| 20 | + } |
| 21 | + done |
| 22 | + } |
| 23 | + |
| 24 | + sudo rm -rf ${ROON} |
| 25 | + sudo rm -rf ${DOC}/RoonCommandLine |
| 26 | + sudo rm -f ${APPL}/rooncommand.desktop |
| 27 | + |
| 28 | + ROON_SITE_DIR= |
| 29 | + # Check the global site directories |
| 30 | + have_python3=$(type -p python3) |
| 31 | + if [ "${have_python3}" ] |
| 32 | + then |
| 33 | + SITES=($(sudo python3 -c 'import site; print(site.getsitepackages())' | tr -d '[],')) |
| 34 | + else |
| 35 | + SITES=($(sudo python -c 'import site; print(site.getsitepackages())' | tr -d '[],')) |
| 36 | + fi |
| 37 | + for site in ${SITES[@]} |
| 38 | + do |
| 39 | + site=$(echo "$site" | sed -e "s/'//g") |
| 40 | + [ -d "${site}"/roonapi ] && { |
| 41 | + ROON_SITE_DIR=${site}/roonapi |
| 42 | + break |
| 43 | + } |
| 44 | + done |
| 45 | + |
| 46 | + if [ "$ROON_SITE_DIR" ] |
| 47 | + then |
| 48 | + # Roll back the Python Roon API patch if it was applied |
| 49 | + cd "$ROON_SITE_DIR" || exit 1 |
| 50 | + for i in *.orig |
| 51 | + do |
| 52 | + [ "$i" == "*.orig" ] && continue |
| 53 | + j=$(echo "$i" | sed -e "s/.orig//") |
| 54 | + sudo mv "$i" "$j" |
| 55 | + done |
| 56 | + else |
| 57 | + echo "Could not locate the roonapi Python module installation directory" |
| 58 | + echo "Python Roon API patch not reversed." |
| 59 | + fi |
| 60 | + |
| 61 | + # Don't uninstall roonapi Python module, they might be using it for something else |
| 62 | + # if [ "${have_python3}" ] |
| 63 | + # then |
| 64 | + # sudo python3 -m pip uninstall roonapi -y |
| 65 | + # else |
| 66 | + # sudo python -m pip uninstall roonapi -y |
| 67 | + # fi |
| 68 | + |
| 69 | + echo "" |
| 70 | + echo "RoonCommandLine uninstalled" |
| 71 | +} |
| 72 | + |
| 73 | +have_fade=$(type -p roon_fade) |
4 | 74 | [ "${have_fade}" ] && roon_fade off |
5 | 75 |
|
6 | | -plat=`uname -s` |
| 76 | +plat=$(uname -s) |
7 | 77 | if [ "$plat" == "Darwin" ] |
8 | 78 | then |
9 | | - ./macUninstall |
| 79 | + uninstall |
10 | 80 | else |
11 | 81 | debian= |
12 | | - have_apt=`type -p apt` |
13 | | - have_dpkg=`type -p dpkg` |
14 | | - have_rpm=`type -p rpm` |
15 | | - have_yum=`type -p yum` |
| 82 | + have_apt=$(type -p apt) |
| 83 | + have_dpkg=$(type -p dpkg) |
| 84 | + have_rpm=$(type -p rpm) |
| 85 | + have_yum=$(type -p yum) |
16 | 86 | [ -f /etc/os-release ] && . /etc/os-release |
17 | 87 | [ "${ID_LIKE}" == "debian" ] && debian=1 |
18 | 88 | [ "${debian}" ] || [ -f /etc/debian_version ] && debian=1 |
|
24 | 94 | then |
25 | 95 | if [ "${have_apt}" ] |
26 | 96 | then |
27 | | - sudo apt remove "${PKG}" -y |
| 97 | + sudo apt remove "${PKG}" -y > /dev/null 2>&1 |
28 | 98 | else |
29 | 99 | if [ "${have_dpkg}" ] |
30 | 100 | then |
31 | | - sudo dpkg -r "${PKG}" |
| 101 | + sudo dpkg -r "${PKG}" > /dev/null 2>&1 |
32 | 102 | else |
33 | 103 | echo "Cannot locate either apt or dpkg to remove. Skipping." |
34 | 104 | fi |
35 | 105 | fi |
36 | 106 | else |
37 | 107 | if [ "${have_yum}" ] |
38 | 108 | then |
39 | | - sudo yum remove "${PKG}" |
| 109 | + sudo yum remove "${PKG}" > /dev/null 2>&1 |
40 | 110 | else |
41 | 111 | if [ "${have_rpm}" ] |
42 | 112 | then |
43 | | - sudo rpm -e "${PKG}" |
| 113 | + sudo rpm -e "${PKG}" > /dev/null 2>&1 |
44 | 114 | else |
45 | 115 | echo "Cannot locate either yum or rpm to remove. Skipping." |
46 | 116 | fi |
47 | 117 | fi |
48 | 118 | fi |
| 119 | + uninstall |
49 | 120 | fi |
0 commit comments