aboutsummaryrefslogtreecommitdiffstats
path: root/commands/nag
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
commit4a34debc88eda9d839584b52bfcf5fbca10ae307 (patch)
tree20aaaddc6f945c2067ffb33cfcfc053218694687 /commands/nag
parent941bcf61dde50643304750bee87f835fdaae343d (diff)
Reaktor commands nag: POC
Diffstat (limited to 'commands/nag')
-rwxr-xr-xcommands/nag32
1 files changed, 32 insertions, 0 deletions
diff --git a/commands/nag b/commands/nag
new file mode 100755
index 0000000..6803583
--- /dev/null
+++ b/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