From 2add201e2f219afe2c9176bba16771e105d05783 Mon Sep 17 00:00:00 2001
From: Markus Frosch <markus.frosch@icinga.com>
Date: Fri, 30 Aug 2019 17:01:42 +0200
Subject: [PATCH] Add systemd service

---
 icinga-reporting.service         | 11 +++++++
 icingaweb2-module-reporting.spec | 53 ++++++++++++++++++++++++++++++++
 2 files changed, 64 insertions(+)
 create mode 100644 icinga-reporting.service

diff --git a/icinga-reporting.service b/icinga-reporting.service
new file mode 100644
index 0000000..2890372
--- /dev/null
+++ b/icinga-reporting.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Icinga Reporting Scheduler
+
+[Service]
+Type=simple
+User=icingaweb2
+ExecStart=/usr/bin/icingacli reporting schedule run
+Restart=on-success
+
+[Install]
+WantedBy=multi-user.target
diff --git a/icingaweb2-module-reporting.spec b/icingaweb2-module-reporting.spec
index e4a3c2e..ab496d5 100644
--- a/icingaweb2-module-reporting.spec
+++ b/icingaweb2-module-reporting.spec
@@ -17,6 +17,10 @@ Source0:        https://github.com/Icinga/icingaweb2-module-%{module_name}/archi
 BuildArch:      noarch
 
 %global basedir %{_datadir}/icingaweb2/modules/%{module_name}
+%global service_name icinga-%{module_name}
+
+BuildRequires:  systemd-devel
+Requires:       systemd
 
 Requires:       icingaweb2 >= %{icingaweb_min_version}
 Requires:       php-Icinga >= %{icingaweb_min_version}
@@ -47,12 +51,44 @@ mkdir -p %{buildroot}%{basedir}
 
 cp -r * %{buildroot}%{basedir}
 
+install -d %{buildroot}%{_unitdir}
+install -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{service_name}.service
+
+%if "%{_vendor}" == "suse"
+install -d %{buildroot}%{_sbindir}
+ln -sf /usr/sbin/service %{buildroot}%{_sbindir}/rc%{service_name}
+%endif # suse
+
 %clean
 rm -rf %{buildroot}
 
+%pre
+%if "%{_vendor}" == "suse"
+  %service_add_pre %{service_name}.service
+%endif # suse
+
+exit 0
+
+%post
+set -e
+
+%if "%{_vendor}" == "suse"
+  %service_add_post %{service_name}.service
+%else # suse
+%systemd_post %{service_name}.service
+%endif # suse
+
+exit 0
+
 %preun
 set -e
 
+%if "%{_vendor}" == "suse"
+  %service_del_preun %{service_name}.service
+%else # suse
+  %systemd_preun %{service_name}.service
+%endif # suse
+
 # Only for removal
 if [ $1 == 0 ]; then
     echo "Disabling icingaweb2 module '%{module_name}'"
@@ -61,12 +97,29 @@ fi
 
 exit 0
 
+%postun
+set -e
+
+%if "%{_vendor}" == "suse"
+  %service_del_postun %{service_name}.service
+%else # suse
+  %systemd_postun_with_restart %{service_name}.service
+%endif # suse
+
+exit 0
+
 %files
 %doc README.md LICENSE
 
 %defattr(-,root,root)
 %{basedir}
 
+%{_unitdir}/%{service_name}.service
+
+%if "%{_vendor}" == "suse"
+%{_sbindir}/rc%{service_name}
+%endif # suse
+
 %changelog
 * Fri Aug 30 2019 Markus Frosch <markus.frosch@icinga.com> - 0.9.1-1
 - Initial package version
-- 
GitLab