summaryrefslogtreecommitdiffstats
path: root/Reaktor
diff options
context:
space:
mode:
authortv <tv@shackspace.de>2014-07-15 10:57:48 +0200
committertv <tv@shackspace.de>2014-07-15 10:57:48 +0200
commit141401974b683db6ab9be473b634f494c05c5565 (patch)
tree4b0805755675de1ff8638617d5fdcabf6ccf263c /Reaktor
parentd4d3007d446691d5959f8a1f360df0b74a793e1f (diff)
Reaktor commands nag: POC
Diffstat (limited to 'Reaktor')
-rwxr-xr-xReaktor/commands/nag32
-rw-r--r--Reaktor/config.py5
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 = [