diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2013-05-22 07:17:56 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2013-05-22 07:18:35 +0000 |
commit | 25d8ef878f52ada1ed371ae6f9508a851a74b23c (patch) | |
tree | 76acf933ed1059f3bd1ce8714c5c864a5b7cbcea /testing/upgrade-notify | |
parent | 17c3e67787c5817eef0819e096c38a48ae8bd5b2 (diff) | |
download | aports-25d8ef878f52ada1ed371ae6f9508a851a74b23c.tar.bz2 aports-25d8ef878f52ada1ed371ae6f9508a851a74b23c.tar.xz |
testing/upgrade-notify: new aport
Get notifications about what services need to restart after an upgrade
http://git.alpinelinux.org/alpine/tree/testing/upgrade-notify
Diffstat (limited to 'testing/upgrade-notify')
-rw-r--r-- | testing/upgrade-notify/APKBUILD | 18 | ||||
-rw-r--r-- | testing/upgrade-notify/upgrade-notify.trigger | 52 |
2 files changed, 70 insertions, 0 deletions
diff --git a/testing/upgrade-notify/APKBUILD b/testing/upgrade-notify/APKBUILD new file mode 100644 index 0000000000..9174a17622 --- /dev/null +++ b/testing/upgrade-notify/APKBUILD @@ -0,0 +1,18 @@ +# Maintainer: Natanael Copa <ncopa@alpinelinux.org> +pkgname="upgrade-notify" +pkgver=0.1 +license="GPL" +pkgdesc="Get notifications about what services need to restart after an upgrade" +url="http://git.alpinelinux.org/alpine/tree/testing/upgrade-notify" +arch=noarch +triggers="$pkgname.trigger=/etc/init.d:/boot" + +build() { + return 0 +} + +package() { + mkdir -p "$pkgdir" +} + + diff --git a/testing/upgrade-notify/upgrade-notify.trigger b/testing/upgrade-notify/upgrade-notify.trigger new file mode 100644 index 0000000000..0c3cf462f8 --- /dev/null +++ b/testing/upgrade-notify/upgrade-notify.trigger @@ -0,0 +1,52 @@ +#!/bin/sh + +msg() { + local summary="$1" + shift + echo "" >&2 + echo " $summary" >&2 + local i + for i; do + echo " $i" >&2 + done + echo "" >&2 +} + +# compare the timestamp of "started" symlink with timestamp of /etc/init.d +# if the /etc/init.d/* script is newer than "started" symlink then +# service was upgraded after service was started +services=$(find /run/openrc/started -type l | xargs stat -c "%n %Y" \ + | while read file started; do + svc=${file##*/} + installed=$(stat -c "%Y" /etc/init.d/$svc) + if [ $installed -gt $started ]; then + echo $svc + fi +done) + +need_reboot=false +for i; do + case $i in + /boot) + need_reboot=true + esac +done + +notify=msg +if which notify-send > /dev/null; then + notify="notify-send" +fi + +if [ -n "$services" ]; then + $notify "The following services have been updated and need a restart:" \ + $services +fi + +case "$(rc --sys)" in + LXC|VSERVER) exit 0 ;; +esac + +if $need_reboot ; then + $notify "Kernel(s) were updated. You might need to reboot" +fi + |