Enhancement - Hooks

- Implemented a master switch rc.hooks=off that can shut off all
  hooks.  Seems like a good idea.
- Added support for 'hooks' and 'hook.*' as valid configuration
  entries.
This commit is contained in:
Paul Beckingham 2010-01-30 17:43:33 -05:00
parent ea8b4beede
commit d09a079199
3 changed files with 41 additions and 32 deletions

View file

@ -119,6 +119,7 @@ std::string Config::defaults =
"complete.all.projects=no # Include old project names in 'projects' command\n" // TODO
"complete.all.tags=no # Include old tag names in 'tags' command\n" // TODO
"debug=no # Display diagnostics\n"
"hooks=off # Hook system master switch\n"
"fontunderline=yes # Uses underlines rather than -------\n"
"shell.prompt=task> # Prompt used by the shell command\n" // TODO
"\n"

View file

@ -89,6 +89,10 @@ void Hooks::initialize ()
api.initialize ();
#endif
// Allow a master switch to turn the whole thing off.
bool big_red_switch = context.config.getBoolean ("hooks");
if (big_red_switch)
{
std::vector <std::string> vars;
context.config.all (vars);
@ -130,6 +134,9 @@ void Hooks::initialize ()
}
}
}
else
context.debug ("Hooks::initialize - hook system shut off");
}
////////////////////////////////////////////////////////////////////////////////
void Hooks::setTaskId (int id)

View file

@ -671,7 +671,7 @@ int handleConfig (std::string &outs)
"displayweeknumber echo.command fontunderline locking monthsperline nag "
"next project shadow.command shadow.file shadow.notify weekstart editor "
"import.synonym.id import.synonym.uuid complete.all.projects "
"complete.all.tags search.case.sensitive "
"complete.all.tags search.case.sensitive hooks "
#ifdef FEATURE_SHELL
"shell.prompt "
#endif
@ -700,7 +700,8 @@ int handleConfig (std::string &outs)
i->substr (0, 10) != "color.tag." &&
i->substr (0, 8) != "holiday." &&
i->substr (0, 7) != "report." &&
i->substr (0, 6) != "alias.")
i->substr (0, 6) != "alias." &&
i->substr (0, 5) != "hook.")
{
unrecognized.push_back (*i);
}