summarylogtreecommitdiffstats
path: root/readme.install
blob: 48064ed5c3c481ff69f2ac9494646aea5a0346a8 (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
post_install() {
  getent group kodi > /dev/null || groupadd -g 420 kodi
  if ! getent passwd kodi > /dev/null; then
    useradd -c 'kodi user' -u 420 -g kodi -G audio,video,network,optical \
      -d /var/lib/kodi -s /usr/bin/nologin kodi
    passwd -l kodi > /dev/null
    [[ ! -d /var/lib/kodi/.kodi ]] &&
      mkdir /var/lib/kodi/.kodi &&
      chown -R kodi:kodi /var/lib/kodi/.kodi
  fi

  echo ">>  Some drivers including Xorg's native modesetting may require the addition"
  echo ">>  of /etc/X11/Xwrapper.config for X to initialize. If kodi.service fails to"
  echo ">>  start, create that file containing the following single line:"
  echo ">>  needs_root_rights = yes"
  echo ">>"
  echo ">>  See: https://wiki.archlinux.org/index.php/Xorg#Rootless_Xorg_.28v1.16.29"
}

post_upgrade() {
  post_install $1
  if ! getent group kodi | cut -d: -f3 | grep 420 > /dev/null 2>&1; then
    groupmod -g 420 kodi > /dev/null 2>&1
  fi
  if ! id -u kodi | grep 420 > /dev/null 2>&1; then
    usermod -u 420 kodi > /dev/null 2>&1
    if [[ $? -ne 0 ]]; then
      echo "Changing uid of user kodi failed."
      echo "It is recommended that the uid is changed."
      echo "Stop all processes running under the kodi user and reinstall kodi"
      echo "or change the uid manually. (usermod -u 420 kodi)"
    fi
    chown -R kodi:kodi /var/lib/kodi
  fi

  if [[ -d /var/lib/xbmc ]]; then
    echo "If you are upgrading from xbmc->kodi and wish to keep your"
    echo "settings, simply follow these steps after the install:"
    echo
    echo "cp -a /var/lib/xbmc/.xbmc/* /var/lib/kodi/.kodi"
    echo "chown -R kodi:kodi /var/lib/kodi"
  fi
}

post_remove() {
  getent passwd kodi > /dev/null 2>&1 && userdel kodi
  getent group kodi > /dev/null 2>&1 && groupdel kodi
}

pre_install() {
  if [ -f /usr/lib/systemd/system/xbmc.service ]; then
    /usr/bin/systemctl status xbmc.service &>/dev/null
    if [[ $? -eq 0 ]]; then
      # xbmc is running via this service
      /usr/bin/systemctl stop xbmc.service &>/dev/null
    else
      /bin/true
    fi
  else
    /bin/true
  fi

  if [ -f /usr/lib/systemd/system/kodi.service ]; then
    /usr/bin/systemctl status kodi.service &>/dev/null
    if [[ $? -eq 0 ]]; then
      # kodi is running via this service
      /usr/bin/systemctl stop kodi.service &>/dev/null
    else
      /bin/true
    fi
  else
    /bin/true
  fi
}

# vim:set ts=2 sw=2 et: