summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xReaktor/commands/nag31
-rw-r--r--Reaktor/config.py16
2 files changed, 32 insertions, 15 deletions
diff --git a/Reaktor/commands/nag b/Reaktor/commands/nag
index e552e11c..8962d9fb 100755
--- a/Reaktor/commands/nag
+++ b/Reaktor/commands/nag
@@ -35,17 +35,34 @@ 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
+
+nag_missing_services='missing services'
+nag_obsolete_services='obsolete services'
+nag_missing_owners='services with missing owner entry'
+nag_missing_mailtos='services with missing mailto entry'
#
# output
#
-if test -n "$missing_services"; then
- echo missing services: $missing_services
-fi
-if test -n "$obsolete_services"; then
- echo obsolete services: $obsolete_services
-fi
+did_nag=false
+for i in \
+ missing_services \
+ obsolete_services \
+ missing_owners \
+ missing_mailtos
+do
+ eval "offenders=\$$i; nag_msg=\$nag_$i"
+ if test -n "$offenders"; then
+ echo $nag_msg: $offenders
+ did_nag=true
+ fi
+done
+
# 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/Reaktor/config.py b/Reaktor/config.py
index 9feecbaf..8a83b28e 100644
--- a/Reaktor/config.py
+++ b/Reaktor/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
}
]