diff options
-rw-r--r-- | buildtools/debian-skeleton/rpki-rp.postinst | 13 | ||||
-rw-r--r-- | buildtools/freebsd-skeleton/rpki-rp/pkg-install | 22 | ||||
-rw-r--r-- | rcynic/Makefile.in | 22 |
3 files changed, 24 insertions, 33 deletions
diff --git a/buildtools/debian-skeleton/rpki-rp.postinst b/buildtools/debian-skeleton/rpki-rp.postinst index b343f2a2..63720f13 100644 --- a/buildtools/debian-skeleton/rpki-rp.postinst +++ b/buildtools/debian-skeleton/rpki-rp.postinst @@ -31,13 +31,12 @@ setup_rcynic_group() { # on repositories, which is why we don't just use a package crontab. setup_rcynic_cron() { - crontab -l -u rcynic 2>/dev/null | - awk -v t=`hexdump -n 2 -e '"%u\n"' /dev/urandom` ' - BEGIN { cmd = "exec /usr/bin/rcynic-cron" } - $0 !~ cmd { print } - END { printf "%u * * * *\t%s\n", t % 60, cmd } - ' | - crontab -u rcynic - + if test "X`crontab -l -u rcynic 2>/dev/null`" = "X" + then + awk -v t=`hexdump -n 2 -e '"%u\n"' /dev/urandom` ' + BEGIN {printf "%u * * * *\texec /usr/bin/rcynic-cron\n", t % 60}' | + crontab -u rcynic - + fi } setup_rpki_rtr_listener() { diff --git a/buildtools/freebsd-skeleton/rpki-rp/pkg-install b/buildtools/freebsd-skeleton/rpki-rp/pkg-install index c9e28875..820e4db3 100644 --- a/buildtools/freebsd-skeleton/rpki-rp/pkg-install +++ b/buildtools/freebsd-skeleton/rpki-rp/pkg-install @@ -34,19 +34,15 @@ POST-INSTALL) echo "Creating $sockdir" install -o nobody -g rcynic -d $sockdir fi - echo "Setting up rcynic's crontab to run rcynic-cron script" - /usr/bin/crontab -l -u rcynic 2>/dev/null | - /usr/bin/awk -v t=`hexdump -n 2 -e '"%u\n"' /dev/random` ' - BEGIN { - cmd = "exec /usr/local/bin/rcynic-cron"; - } - $0 !~ cmd { - print; - } - END { - printf "%u * * * *\t%s\n", t % 60, cmd; - }' | - /usr/bin/crontab -u rcynic - + if test "X`/usr/bin/crontab -l -u ${RCYNIC_CRON_USER} 2>/dev/null`" != "X" + then + echo "rcynic user already has a crontab, leaving it alone" + else + echo "Setting up rcynic's crontab to run rcynic-cron script" + /usr/bin/awk -v t=`/usr/bin/hexdump -n 2 -e '"%u\n"' /dev/random` ' + BEGIN {printf "%u * * * *\texec /usr/local/bin/rcynic-cron\n", t % 60}' | + /usr/bin/crontab -u rcynic - + fi echo "Setting up rpki-rtr listener under inetd" if /usr/bin/egrep -q '^rpki-rtr' /etc/services ; then echo "You already have a /etc/services entry for rpki-rtr, so I will use it." diff --git a/rcynic/Makefile.in b/rcynic/Makefile.in index 623855a3..1be2d912 100644 --- a/rcynic/Makefile.in +++ b/rcynic/Makefile.in @@ -219,19 +219,15 @@ ${DESTDIR}${bindir}/validation_status: validation_status .FORCE: install-crontab: .FORCE - @echo "Setting up ${RCYNIC_CRON_USER}'s crontab to run rcynic-cron script" - @crontab -l -u ${RCYNIC_CRON_USER} 2>/dev/null | \ - ${AWK} -v t=`hexdump -n 2 -e '"%u\n"' /dev/random` '\ - BEGIN { \ - cmd = "exec ${bindir}/rcynic-cron"; \ - } \ - $$0 !~ cmd { \ - print; \ - } \ - END { \ - printf "%u * * * *\t%s\n", t % 60, cmd; \ - }' | \ - /usr/bin/crontab -u ${RCYNIC_CRON_USER} - + @if test "X`/usr/bin/crontab -l -u ${RCYNIC_CRON_USER} 2>/dev/null`" != "X"; \ + then \ + echo "${RCYNIC_CRON_USER} already has a crontab, leaving it alone"; \ + else \ + echo "Setting up ${RCYNIC_CRON_USER}'s crontab to run rcynic-cron script"; \ + ${AWK} -v t=`hexdump -n 2 -e '"%u\n"' /dev/random` '\ + BEGIN {printf "%u * * * *\texec ${bindir}/rcynic-cron\n", t % 60}' | \ + /usr/bin/crontab -u ${RCYNIC_CRON_USER} -; \ + fi # Platform-specific rules below here. |