0
0
mirror of https://github.com/libretro/Lakka-LibreELEC.git synced 2024-12-12 16:53:26 +00:00
Matthias Reichl addab9b783 Revert "kodi: service addon wrapper call fix"
This reverts commit 3fc36563b1ae228e26979751439a6a069e078136.

This fixes service addons not being started after installation.

Signed-off-by: Matthias Reichl <hias@horus.com>
2021-03-17 16:57:38 +01:00

98 lines
2.2 KiB
Bash
Executable File

#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
if [ $# -ne 3 ] ; then
echo "$0 usage: context addon-id addon-path"
exit 1
fi
CONTEXT="$1"
ADDON_ID="$2"
ADDON_PATH="$3"
if [ ! -d /storage/.config/system.d ] ; then
mkdir -p /storage/.config/system.d
fi
SERVICE_FILE="${ADDON_PATH}/system.d/${ADDON_ID}.service"
if [ -f "${SERVICE_FILE}" ] ; then
case "${CONTEXT}" in
enable)
systemctl enable "${SERVICE_FILE}"
chmod +x "${ADDON_PATH}/bin"/*
systemctl start "${ADDON_ID}.service"
;;
disable | pre-uninstall)
systemctl stop "${ADDON_ID}.service"
systemctl disable "${ADDON_ID}.service"
;;
post-install)
# post-install is triggered on update as well,
# make sure to stop and re-install service
systemctl stop "${ADDON_ID}.service"
systemctl disable "${ADDON_ID}.service"
systemctl enable "${SERVICE_FILE}"
chmod +x "${ADDON_PATH}/bin"/*
systemctl start "${ADDON_ID}.service"
;;
restart)
systemctl restart "${ADDON_ID}.service"
;;
reload)
systemctl reload "${ADDON_ID}.service"
;;
*)
echo "$0: unknown service context $CONTEXT"
exit 1
;;
esac
fi
if [ ! -d /storage/.cache/kernel-overlays ] ; then
mkdir -p /storage/.cache/kernel-overlays
fi
# kernel-overlay addons built into the image have their
# files installed in the default /usr/lib/kernel-overlays
# location, not inside the kodi addon dir
case "${ADDON_PATH}" in
/usr/share/kodi/addons/*)
OVERLAY_PATH="/usr/lib/kernel-overlays/${ADDON_ID}"
;;
*)
OVERLAY_PATH="${ADDON_PATH}/kernel-overlay"
;;
esac
create_overlay_conf() {
rm -f "${OVERLAY_CONF}"
echo "${OVERLAY_PATH}" > "${OVERLAY_CONF}"
}
if [ -d "${OVERLAY_PATH}" ] ; then
OVERLAY_CONF="/storage/.cache/kernel-overlays/50-${ADDON_ID}.conf"
case "${CONTEXT}" in
enable | post-install )
create_overlay_conf
;;
disable | pre-uninstall )
rm -f "${OVERLAY_CONF}"
;;
update )
if [ -e "${OVERLAY_CONF}" ] ; then
create_overlay_conf
fi
;;
*)
echo "$0: unknown overlay context $CONTEXT"
exit 1
;;
esac
fi