From c9abcaaa9657aaa1699ef33533820f18413bba26 Mon Sep 17 00:00:00 2001
From: tv <tv@shackspace.de>
Date: Mon, 11 Aug 2014 21:41:42 +0200
Subject: Reaktor nag: add support for service inspection

---
 commands/nag | 17 ++++++++++++++++-
 config.py    | 16 ++++++++--------
 2 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/commands/nag b/commands/nag
index e552e11..fabeec8 100755
--- a/commands/nag
+++ b/commands/nag
@@ -35,17 +35,32 @@ diff -u nag.hosts.ls nag.services.ls > nag.patch || :
 missing_services=$(sed -n '1d;2d;s/^-\(.*\)/\1/p' nag.patch | tr '\n' ' ')
 obsolete_services=$(sed -n '1d;2d;s/^+\(.*\)/\1/p' nag.patch | tr '\n' ' ')
 
+if test "${inspect_services-false}" = true; then
+  missing_owners=$(set +f; cd nag.services && grep '^owner:$' * | cut -d: -f1)
+  missing_mailtos=$(set +f; cd nag.services && grep '^mailto:$' * | cut -d: -f1)
+fi
 
 #
 # output
 #
+did_nag=false
 if test -n "$missing_services"; then
   echo missing services: $missing_services
+  did_nag=true
 fi
 if test -n "$obsolete_services"; then
   echo obsolete services: $obsolete_services
+  did_nag=true
+fi
+if test -n "${missing_owners-}"; then
+  echo services with missing owner entry: $missing_owners
+  did_nag=true
+fi
+if test -n "${missing_mailtos-}"; then
+  echo services with missing mailto entry: $missing_mailtos
+  did_nag=true
 fi
 # if asked directly, answer if there is nothing to nag about
-if test -z "$missing_services$obsolete_services" -a -n "${_from:-}";then
+if test $did_nag = false -a -n "${_from:-}";then
   echo "nothing to nag about"
 fi
diff --git a/config.py b/config.py
index 9feecba..8a83b28 100644
--- a/config.py
+++ b/config.py
@@ -21,6 +21,12 @@ irc_channels = [
 admin_file=workdir+'/admin.lst'
 auth_file=workdir+'/auth.lst'
 
+nag_env={
+  'hosts_repo': 'https://github.com/krebscode/hosts',
+  'services_repo': 'gitolite@localhost:services',
+  'inspect_services': 'false'
+}
+
 config_filename = abspath(__file__)
 
 # me is used, so name cannot kill our patterns below
@@ -58,10 +64,7 @@ public_commands = [
   default_command('tell', cmd='tell-on_privmsg', env={
     'state_file': workdir + '/tell.txt'
   }),
-  default_command('nag',env={
-      'hosts_repo': 'https://github.com/krebscode/hosts',
-      'services_repo': 'gitolite@localhost:services'
-    }),
+  default_command('nag', env=nag_env),
   simple_command('identify', env={
     'config_filename': config_filename
   }),
@@ -89,10 +92,7 @@ on_ping = [
   {
     'capname': 'nag',
     'argv': [ 'commands/nag' ],
-    'env': {
-      'hosts_repo': 'https://github.com/krebscode/hosts',
-      'services_repo': 'gitolite@localhost:services'
-    },
+    'env': nag_env,
     'targets': irc_channels
   }
 ]
-- 
cgit v1.2.3