kodi: systemd wrapper: cosmetics

This commit is contained in:
Stefan Saraev 2015-02-08 20:00:09 +02:00
parent 884c7184f4
commit 53d0387f81

View File

@ -1,15 +1,15 @@
From 0ccbc5043710b3c770e076d17b292964c91bfd23 Mon Sep 17 00:00:00 2001 From a58ead6a20bcfd6132c6f234c3108b5d16a6440c Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca> From: Stefan Saraev <stefan@saraev.ca>
Date: Fri, 8 Aug 2014 18:22:44 +0300 Date: Fri, 8 Aug 2014 18:22:44 +0300
Subject: [PATCH] use a wrapper to setup systemd services Subject: [PATCH] use a wrapper to setup systemd services
--- ---
xbmc/addons/Service.cpp | 23 +++++++++++++++++++++++ xbmc/addons/Service.cpp | 22 ++++++++++++++++++++++
xbmc/addons/Service.h | 3 +++ xbmc/addons/Service.h | 1 +
2 files changed, 26 insertions(+) 2 files changed, 23 insertions(+)
diff --git a/xbmc/addons/Service.cpp b/xbmc/addons/Service.cpp diff --git a/xbmc/addons/Service.cpp b/xbmc/addons/Service.cpp
index c406b11..f68b427 100644 index c406b11..f6afbe8 100644
--- a/xbmc/addons/Service.cpp --- a/xbmc/addons/Service.cpp
+++ b/xbmc/addons/Service.cpp +++ b/xbmc/addons/Service.cpp
@@ -53,6 +53,10 @@ AddonPtr CService::Clone() const @@ -53,6 +53,10 @@ AddonPtr CService::Clone() const
@ -23,34 +23,32 @@ index c406b11..f68b427 100644
switch (m_type) switch (m_type)
{ {
#ifdef HAS_PYTHON #ifdef HAS_PYTHON
@@ -113,13 +117,26 @@ void CService::BuildServiceType() @@ -113,13 +117,24 @@ void CService::BuildServiceType()
} }
} }
+void CService::CallOEWrapper(const std::string& ID, bool disable, bool check) +void CService::CallOEWrapper(const std::string& ID, bool disable, bool check)
+{ +{
+ char cmd[255]; + char cmd[255];
+ snprintf(cmd, sizeof(cmd), "/usr/lib/openelec/systemd-addon-wrapper %s %d", ID.c_str(), disable, check); + snprintf(cmd, sizeof(cmd), "/usr/lib/openelec/systemd-addon-wrapper %s %d %d", ID.c_str(), disable, check);
+ system(cmd); + system(cmd);
+} +}
+ +
void CService::OnDisabled() void CService::OnDisabled()
{ {
Stop();
+ // systemctl stop & disable on addon disable + // systemctl stop & disable on addon disable
+ CallOEWrapper(ID(), true, false); + CallOEWrapper(ID(), true, false);
+
Stop();
} }
void CService::OnEnabled() void CService::OnEnabled()
{ {
+ // systemctl enable & start on addon enable + // systemctl enable & start on addon enable
+ CallOEWrapper(ID(), false, false); + CallOEWrapper(ID(), false, false);
+
Start(); Start();
} }
@@ -145,7 +162,13 @@ void CService::OnPostInstall(bool restart, bool update) @@ -145,13 +160,20 @@ void CService::OnPostInstall(bool restart, bool update)
{ {
boost::shared_ptr<CService> service = boost::dynamic_pointer_cast<CService>(localAddon); boost::shared_ptr<CService> service = boost::dynamic_pointer_cast<CService>(localAddon);
if (service) if (service)
@ -58,23 +56,31 @@ index c406b11..f68b427 100644
+ // systemctl stop & disable / enable & start on addon upgrade + // systemctl stop & disable / enable & start on addon upgrade
+ CallOEWrapper(ID(), true, false); + CallOEWrapper(ID(), true, false);
+ CallOEWrapper(ID(), false, false); + CallOEWrapper(ID(), false, false);
+
service->Start(); service->Start();
+ } + }
} }
} }
} }
void CService::OnPreUnInstall()
{
+ // systemctl stop & disable on addon ininstall
+ CallOEWrapper(ID(), true, false);
Stop();
}
diff --git a/xbmc/addons/Service.h b/xbmc/addons/Service.h diff --git a/xbmc/addons/Service.h b/xbmc/addons/Service.h
index 98ec8b6..accd9e2 100644 index 98ec8b6..683ae60 100644
--- a/xbmc/addons/Service.h --- a/xbmc/addons/Service.h
+++ b/xbmc/addons/Service.h +++ b/xbmc/addons/Service.h
@@ -47,6 +47,9 @@ namespace ADDON @@ -47,6 +47,7 @@ namespace ADDON
bool Stop(); bool Stop();
TYPE GetServiceType() { return m_type; } TYPE GetServiceType() { return m_type; }
START_OPTION GetStartOption() { return m_startOption; } START_OPTION GetStartOption() { return m_startOption; }
+
+ void CallOEWrapper(const std::string& ID, bool disable, bool check); + void CallOEWrapper(const std::string& ID, bool disable, bool check);
+
virtual void OnDisabled(); virtual void OnDisabled();
virtual void OnEnabled(); virtual void OnEnabled();
virtual bool OnPreInstall(); virtual bool OnPreInstall();
--
2.1.0