aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortv <tv@shackspace.de>2014-08-11 21:41:42 +0200
committertv <tv@shackspace.de>2014-08-11 21:41:42 +0200
commitc9abcaaa9657aaa1699ef33533820f18413bba26 (patch)
tree58aed4f9cf40b979e71df7d2ce6901ac389d8d20
parentc8b63b54322302615906aa4fe281e8fb42afa9b2 (diff)
Reaktor nag: add support for service inspection
-rwxr-xr-xcommands/nag17
-rw-r--r--config.py16
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
}
]