From 151b6f6be7a33152c3f94d6996770386066f563a Mon Sep 17 00:00:00 2001 From: Ville Skyttä Date: Jan 07 2014 21:32:16 +0000 Subject: Split RTC wakeup from runvdr to separate set-wakeup script --- diff --git a/vdr-runvdr.sh b/vdr-runvdr.sh index 30e4958..5bdea34 100644 --- a/vdr-runvdr.sh +++ b/vdr-runvdr.sh @@ -4,7 +4,7 @@ # # runvdr [VDROPTION]... -shopt -s extglob nocasematch nullglob +shopt -s nocasematch nullglob VDR=/usr/sbin/vdr PLUGINDIR=/usr/lib/vdr @@ -59,34 +59,6 @@ reload_dvb() fi } -set_rtcwake() -{ - # Check timestamp set by shutdown script. - local nexttimer=$( cat /var/run/vdr/next-timer 2>/dev/null ) - rm -f /var/run/vdr/next-timer - - if [[ $nexttimer != +([0-9]) ]] ; then - # Next timer timestamp not set by shutdown script or bogus, - # try to get it via SVDRP. - nexttimer=$( svdrpsend NEXT abs 2>/dev/null | \ - sed -rne 's/^250[[:space:]]+[0-9]+[[:space:]]+([0-9]+).*/\1/p' ) - fi - - if [[ $nexttimer && $nexttimer -gt $( date +%s ) ]] ; then - [[ -f /etc/sysconfig/vdr ]] && . /etc/sysconfig/vdr - local when=$(( $nexttimer - ${WAKEUP_BEFORE_RECORDING:-10} * 60 )) - local hrwhen=$( date -d "1970-01-01 $when sec UTC" ) - echo "Setting wakeup time for next recording: $hrwhen" - /usr/sbin/rtcwake -m no -t $when >/dev/null - fi -} - -if [[ $1 == --set-wakeup ]] ; then - # Just set RTC wakeup for next timer event. - set_rtcwake - exit $? -fi - rc= while true ; do diff --git a/vdr-set-wakeup.sh b/vdr-set-wakeup.sh new file mode 100644 index 0000000..fd95669 --- /dev/null +++ b/vdr-set-wakeup.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Set RTC wakeup for next VDR timer event + +shopt -s extglob + +# Check timestamp set by shutdown script. +nexttimer=$( cat /var/run/vdr/next-timer 2>/dev/null ) +rm -f /var/run/vdr/next-timer + +if [[ $nexttimer != +([0-9]) ]] ; then + # Next timer timestamp not set by shutdown script or bogus, + # try to get it via SVDRP. + nexttimer=$( svdrpsend NEXT abs 2>/dev/null | \ + sed -rne 's/^250[[:space:]]+[0-9]+[[:space:]]+([0-9]+).*/\1/p' ) +fi + +if [[ $nexttimer && $nexttimer -gt $( date +%s ) ]] ; then + [[ -f /etc/sysconfig/vdr ]] && . /etc/sysconfig/vdr + when=$(( $nexttimer - ${WAKEUP_BEFORE_RECORDING:-10} * 60 )) + hrwhen=$( date -d "1970-01-01 $when sec UTC" ) + echo "Setting wakeup time for next recording: $hrwhen" + /usr/sbin/rtcwake -m no -t $when >/dev/null +fi diff --git a/vdr.service b/vdr.service index cf1ffa4..c1e9e66 100644 --- a/vdr.service +++ b/vdr.service @@ -8,7 +8,7 @@ After=network.target lirc.service Environment=VDR_INIT=1 ExecStartPre=/usr/lib/vdr/bin/vdr-check-setup ExecStart=/usr/sbin/runvdr -ExecStop=-/usr/sbin/runvdr --set-wakeup +ExecStop=-/usr/lib/vdr/bin/vdr-set-wakeup [Install] WantedBy=multi-user.target diff --git a/vdr.spec b/vdr.spec index 133ebfe..e1ee789 100644 --- a/vdr.spec +++ b/vdr.spec @@ -50,6 +50,7 @@ Source17: %{name}.macros Source18: http://cdn.debian.net/debian/pool/main/v/vdr/vdr_2.0.3-1.debian.tar.bz2 Source19: %{name}-check-setup.sh Source20: %{name}-rcu.conf +Source21: %{name}-set-wakeup.sh Patch0: %{name}-channel+epg.patch Patch1: http://zap.tartarus.org/~ds/debian/dists/stable/main/source/vdr_1.4.5-2.ds.diff.gz Patch2: http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-2.0.3-vasarajanauloja.patch.gz @@ -321,7 +322,6 @@ sed -i \ -e 's|/usr/sbin/|%{_sbindir}/|' \ -e 's|/etc/sysconfig/|%{_sysconfdir}/sysconfig/|g' \ -e 's|/usr/lib/vdr\b|%{plugindir}|' \ - -e 's|/var/run/vdr/|%{rundir}/|' \ -e 's|VDR_PLUGIN_VERSION|%{apiver}|' \ $RPM_BUILD_ROOT%{_sbindir}/runvdr @@ -344,6 +344,9 @@ sed -e 's|/etc/vdr/|%{configdir}/|' \ -e 's|VDR_USER|%{vdr_user}|' -e 's|VDR_GROUP|%{vdr_group}|' \ < %{SOURCE19} > $RPM_BUILD_ROOT%{plugindir}/bin/%{name}-check-setup chmod 755 $RPM_BUILD_ROOT%{plugindir}/bin/%{name}-check-setup +sed -e 's|/usr/sbin/|%{_sbindir}/|' -e 's|/var/run/vdr/|%{rundir}/|' \ + < %{SOURCE21} > $RPM_BUILD_ROOT%{plugindir}/bin/%{name}-set-wakeup +chmod 755 $RPM_BUILD_ROOT%{plugindir}/bin/%{name}-set-wakeup install -dm 755 $RPM_BUILD_ROOT%{_unitdir} sed -e 's|/usr/lib/vdr/|%{plugindir}/|' -e 's|/usr/sbin/|%{_sbindir}/|' \ @@ -466,6 +469,7 @@ systemctl daemon-reload &>/dev/null %dir %{plugindir}/bin/ %{plugindir}/bin/%{name}-check-setup %{plugindir}/bin/%{name}-moveto.sh +%{plugindir}/bin/%{name}-set-wakeup %{plugindir}/bin/%{name}-shutdown.sh %{_datadir}/vdr/ %{_mandir}/man1/svdrpsend.1*