diff --git a/src/Hooks.cpp b/src/Hooks.cpp index bf23ac8c8..87601d6ab 100644 --- a/src/Hooks.cpp +++ b/src/Hooks.cpp @@ -125,22 +125,57 @@ void Hooks::onExit () } //////////////////////////////////////////////////////////////////////////////// -// Occurs when: A task is modified, before it is committed. -// Data fed to stdin: before JSON -// after JSON +// Occurs when: A task is created, before it is committed. +// Data fed to stdin: task JSON // Exit code: 0: Success // !0: Failure -// Output handled: 0: modified after JSON +// Output handled: 0: modified JSON // context.footnote () // !0: context.error () -void Hooks::onModify (const Task& before, const Task& after) +void Hooks::onAdd (Task& after) { context.timer_hooks.start (); std::vector ::iterator i; for (i = _scripts.begin (); i != _scripts.end (); ++i) { - if (i->substr (0, 7) == "on-modify") + if (i->substr (0, 6) == "on-add") + { + File script (*i); + if (script.executable ()) + { + // TODO Call all modify hook scripts. + + // TODO On zero status: + // - first line is modified JSON + // - remaining lines --> context.footnote + + // TODO On non-zero status: + // - all stdout --> context.error + } + } + } + + context.timer_hooks.stop (); +} + +//////////////////////////////////////////////////////////////////////////////// +// Occurs when: A task is modified, before it is committed. +// Data fed to stdin: before JSON +// after JSON +// Exit code: 0: Success +// !0: Failure +// Output handled: 0: modified after JSON +// context.footnote () +// !0: context.error () +void Hooks::onModify (const Task& before, Task& after) +{ + context.timer_hooks.start (); + + std::vector ::iterator i; + for (i = _scripts.begin (); i != _scripts.end (); ++i) + { + if (i->substr (0, 9) == "on-modify") { File script (*i); if (script.executable ()) diff --git a/src/Hooks.h b/src/Hooks.h index f9d55948a..d77d1b64f 100644 --- a/src/Hooks.h +++ b/src/Hooks.h @@ -42,7 +42,8 @@ public: void onLaunch (); void onExit (); - void onModify (const Task&, const Task&); + void onAdd (Task&); + void onModify (const Task&, Task&); private: std::vector _scripts;