SPEC for a general useless ticking service with systemd unit and overridable rpm macros
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Variables that can be override on build time. | |
%{!?sleep: %define sleep 5} | |
%{!?name: %define name tick%{sleep}} | |
%{!?version: %define version 0.0} | |
%{!?release: %define release 1} | |
%{!?systemdinstalldir: %define systemdinstalldir /etc/systemd/system} | |
%{!?message: %define message come on, James} | |
# Some metadata required by an RPM package | |
Name: %name | |
Summary: Print a message every %{sleep}s | |
Version: %version | |
Release: %release | |
License: MIT | |
%description | |
%{name} is a simple useless script that echos a message every %{sleep} seconds. | |
%install | |
# create the executable from scratch in buildroot. | |
%{__mkdir} -p %{buildroot}%{_prefix}/bin | |
%{__cat} <<EOF> %{buildroot}/usr/bin/%{name} | |
#!/bin/bash | |
# say something, with timestamp, every %{sleep} seconds | |
while echo "\$@"; do | |
sleep %{sleep}s | |
done | |
EOF | |
%{__chmod} 755 %{buildroot}%{_prefix}/bin/%{name} | |
# generate the systemd unit file to buildroot. | |
%{__mkdir} -p %{buildroot}%{systemdinstalldir} | |
%{__cat} <<EOF> %{buildroot}%{systemdinstalldir}/%{name}.service | |
[Unit] | |
[Install] | |
WantedBy=multi-user.target | |
[Service] | |
ExecStart=%{_prefix}/bin/%{name} %{message} | |
Restart=always | |
RestartSec=5 | |
StandardOutput=syslog | |
StandardError=syslog | |
SyslogIdentifier=%n | |
EOF | |
%files | |
%{_prefix}/bin/%{name} | |
%{systemdinstalldir}/%{name}.service |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment