diff options
-rwxr-xr-x | Reaktor/commands/nag | 31 | ||||
-rw-r--r-- | Reaktor/config.py | 16 |
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 } ] |