diff options
-rwxr-xr-x | Reaktor/commands/nag | 32 | ||||
-rw-r--r-- | Reaktor/config.py | 5 |
2 files changed, 37 insertions, 0 deletions
diff --git a/Reaktor/commands/nag b/Reaktor/commands/nag new file mode 100755 index 00000000..68035831 --- /dev/null +++ b/Reaktor/commands/nag @@ -0,0 +1,32 @@ +#! /bin/sh +set -euf + +cd "$workdir" + +if test -e nag.hosts; then + echo "nag seems to run already... if not, then delete $workdir/nag.*, please" + exit 23 +fi + +trap 'rm -f nag.hosts nag.services nag.patch' EXIT INT QUIT + +(cd "$hostsdir" && ls | sort) > nag.hosts +(cd "$servicesdir" && ls | sort) > nag.services + +diff -u nag.hosts nag.services > nag.patch || : + +missing_services=$(sed -n '1d;2d;s/^-\(.*\)/\1/p' nag.patch | tr '\n' ' ') +superfluous_services=$(sed -n '1d;2d;s/^+\(.*\)/\1/p' nag.patch | tr '\n' ' ') + +# +# output +# +if test -n "$missing_services"; then + echo missing services: $missing_services +fi +if test -n "$superfluous_services"; then + echo superfluous services: $superfluous_services +fi +if test -z "$missing_services$superfluous_services"; then + echo hosts and services are in sync +fi diff --git a/Reaktor/config.py b/Reaktor/config.py index b1158271..247838d6 100644 --- a/Reaktor/config.py +++ b/Reaktor/config.py @@ -71,6 +71,11 @@ public_commands = [ ] commands = [ default_command('reload') + default_command('nag', env={ + 'workdir': workdir, + 'hostsdir': '/home/tv/krebs/hosts', + 'servicesdir': '/home/tv/krebs/services' + }) ] on_join = [ |