From: Elan Ruusamäe Date: Sun, 10 Jul 2005 11:43:40 +0000 (+0000) Subject: - add "%service [-q] SERVICE ACTION" macro X-Git-Tag: auto/th/rpm-4_4_1-1_99~6 X-Git-Url: http://git.pld-linux.org/?p=packages%2Frpm-build-macros.git;a=commitdiff_plain;h=462b26fab129f17787a55d8c5cc80aa0101f9eab - add "%service [-q] SERVICE ACTION" macro Changed files: rpm.macros -> 1.228 --- diff --git a/rpm.macros b/rpm.macros index a95bb6a..d3ed11e 100644 --- a/rpm.macros +++ b/rpm.macros @@ -740,3 +740,36 @@ if [ "$1" = "0" ] || [ "$2" = "0" ]; then \ done ) \ ) | ( %banner -t 5 -e %{name}-un ); fi; \ } + +# service macro. +# +# calls usual service restart on package %post, but skips the restart if +# administrator has disabled automatic service restarts in either global +# /etc/sysconfig/rpm or per service /etc/sysconfig/SERVICE file. +# +# written by glen@pld-linux.org. +# All rights reserved. Permission to copy is hereby granted.. yada, yada, yada +# +# Usage: +# %service [-q] SERVICE ACTION +# +# -q be silent when service isn't started (for postun scriplets) +# +%service(q) \ +# we use function, not to globber namespace with useless variables \ +skip_auto_restart() { \ + . /etc/sysconfig/rpm # global setting \ + [ -f /etc/sysconfig/%1 ] && . /etc/sysconfig/%1 # per service setting \ + echo ${RPM_SKIP_AUTO_RESTART:-no} \ +} \ +if [ -f /var/lock/subsys/%1 ]; then \ + if [ $(skip_auto_restart) = no ]; then \ + /etc/rc.d/init.d/%1 %2 1>&2 \ + else \ + echo 'Run "/etc/rc.d/init.d/%1 %2" to %2 %1 service.' \ + fi \ +else \ + %{!-q:echo 'Run "/etc/rc.d/init.d/%1 start" to start %1 service.'} \ + %{-q::} \ +fi; +