Commit Graph

104 Commits

Author SHA1 Message Date
Paul Beckingham
d9222606e7 Hooks
- The on-exit hook can now terminate processing.
2014-10-19 01:47:33 -04:00
Paul Beckingham
7895ea0f42 Hooks
- Added safety measure in case of a hook misfire.
- Made debug output consistent.
2014-10-19 01:32:41 -04:00
Paul Beckingham
7e2582f2b8 Hooks
- Fixed bug where the identifier "on-modify" contained some bogus UTF8.
- Ensured that every input line has a \n.
2014-10-19 00:57:30 -04:00
Paul Beckingham
719e9d242b Hooks
- Bug due to missing reference & in calls to callHookScript.  Dumbass.
2014-10-18 23:59:40 -04:00
Paul Beckingham
f1639e6862 Hooks
- Revised all event functions to use the new callHookScript method, which is
  now common to all events.
2014-10-18 23:47:32 -04:00
Paul Beckingham
d1f6b36ecf Hooks
- Standardized formatting of hook input and output in debug.hooks mode.
2014-10-18 17:26:20 -04:00
Paul Beckingham
8d75d0c7f3 Hooks
- Reduced validation to simply checking that a description attribute is present.
  This is the bare minimum for the Task(const std::string&) contructor.
2014-10-18 17:23:39 -04:00
Paul Beckingham
21bbedbfc5 Hooks
- Now performs a full JSON parse on hook script output before accepting it as a
  task.
2014-10-18 16:59:46 -04:00
Paul Beckingham
b6be1cdc99 Hooks
- Factored out the code that determines if the JSON output from a hook script is
  actually JSON.
2014-10-18 16:55:26 -04:00
Wilhelm Schuermann
ae9705561c Hooks
- Throw exception instead of segfaulting for on-add hooks not adhering to the specs. More work needed.
2014-10-14 15:58:24 -04:00
Paul Beckingham
7521dc56e8 Hooks
- Supports 'debug.hooks' configuration setting.
2014-10-06 23:04:44 -04:00
Paul Beckingham
5b7e6df00b Util
- The execute() function needed to fill the STDIN pipe before the fork, not
  after the fork, so the data is ready before the child process reads.
2014-09-14 17:43:19 -04:00
Paul Beckingham
bfc6e38851 Hooks
- ::onExit now provides a set of all changeѕ tasks to the hook script, in
  read-only form.
2014-09-14 17:04:12 -04:00
Paul Beckingham
8be6c589da Hooks
- Implemented new interface.  Testing time.
2014-09-14 15:55:22 -04:00
Paul Beckingham
ab72cdad4d Hooks
- Stubbed new ::onAdd and ::onModify interfaces.
2014-09-14 15:42:47 -04:00
Paul Beckingham
7e35508bb4 Hooks
- Added a run-time enable/disable control, for nested add/modify calls.
2014-09-09 23:36:45 -04:00
Paul Beckingham
78650ac8c3 Hooks
- Added a master control, rc.hooks, which defaults to 'on', but can be used
  to disable hook processing in general.
2014-09-08 01:22:35 -04:00
Paul Beckingham
6dff1f36bf Hooks
- Added notes regarding the use of 'first', which may be problematic.
2014-09-08 00:01:54 -04:00
Paul Beckingham
5ce317bb48 Hooks
- Modified ::onExit to remove the indicator that data was modified. This is not
  supported.
2014-09-07 22:56:28 -04:00
Paul Beckingham
a9cf61c1d1 Hooks
- Removed code supporting data modification during the on-exit event.
- Fixed hook script interface descriptions.
2014-09-07 22:44:03 -04:00
Paul Beckingham
60260fb813 Hooks
- Removed obsolete ::execute method, instead relying on the util.cpp variant.
2014-08-30 23:53:59 -04:00
Paul Beckingham
273d9fe070 Hooks
- Code cleanup.
2014-08-30 23:29:30 -04:00
Paul Beckingham
4ef189d7b6 Hooks
- ::onExit now indicates whether changes were made.
2014-08-09 21:06:16 -04:00
Paul Beckingham
9996e5adef Hooks
- Correct handling for JSON and non-JSON output.
2014-08-09 20:19:02 -04:00
Paul Beckingham
2ea9b8786e Hooks
- It is safe to call free() with a null pointer.
2014-08-07 07:51:22 -04:00
Paul Beckingham
f2a545bc25 Hooks
- First pass at a portable 'popen' implementation.  Thanks to Wim.
2014-07-01 20:02:27 -04:00
Paul Beckingham
9f6e37fa06 Portability
- Reordered includes to allow build on FreeBSD (thanks to Pietro Cerutti).
2014-05-30 15:25:34 -04:00
Paul Beckingham
5baa999459 Build
- Added missing define for FreeBSD.
2014-05-29 20:21:34 -04:00
Paul Beckingham
5513a0c843 Hooks
- Updated method comments.
2014-05-18 16:10:36 -04:00
Paul Beckingham
0ffc95e312 Hooks
- Added Hooks::list method to provide a list of known hooks.
2014-05-17 14:20:46 -04:00
Paul Beckingham
9248f1569f Hooks
- Corrected check for trivial input.
2014-05-14 22:47:12 -04:00
Paul Beckingham
d70c8eef5c Hooks
- ::onLaunch now conforms to design.
2014-05-14 22:39:56 -04:00
Paul Beckingham
3010ac667b Hooks
- ::onAdd now conforms to design.
2014-05-14 22:39:35 -04:00
Paul Beckingham
0d2bc00527 Hooks
- ::onExit now comforms to design.
2014-05-14 22:10:40 -04:00
Paul Beckingham
b1c0e67581 Hooks
- ::onModify now conforms to design.
2014-05-14 21:44:22 -04:00
Paul Beckingham
0b6e94280e Hooks
- Debug diagnostics now include exit status of hook script.
2014-05-14 21:43:03 -04:00
Paul Beckingham
8c36392fb0 Hooks
- Added diagnostics for debugging.
2014-05-14 17:47:28 -04:00
Paul Beckingham
c86853fd03 Hooks
- Added helper method ::scripts to filter by event and accessibility.
2014-05-14 17:45:42 -04:00
Paul Beckingham
dee6f3a713 Hooks
- Implemented ::onModify.
2014-05-14 00:11:13 -04:00
Paul Beckingham
0bb3be73da Hooks
- Implemented ::onAdd.
2014-05-14 00:05:47 -04:00
Paul Beckingham
8f14d83955 Hooks
- Implemented ::onExit.
2014-05-14 00:05:22 -04:00
Paul Beckingham
398bec3dbe Hooks
- Implemented ::onLaunch.
2014-05-14 00:04:51 -04:00
Paul Beckingham
d30fb54a62 Hooks
- Implemented ::execute to run a command, feed it input, read it's output and
  return the exit status.
2014-05-14 00:03:02 -04:00
Paul Beckingham
631e4176c7 Hooks
- Added ::onAdd.
2014-05-13 22:04:35 -04:00
Paul Beckingham
2f5435c50f Hooks
- Added ::onModify.
- Stubbed out functionality in all three hook methods.
2014-05-13 21:49:56 -04:00
Paul Beckingham
ff52a2ab59 Hooks
- Defined the interface for ::onLaunch and ::onExit.
2014-05-13 18:58:57 -04:00
Paul Beckingham
f1451b2670 Hooks
- Enumerates installed hook scripts and sorts it, thus defining the
  execution sequence.
2014-05-13 18:58:15 -04:00
Paul Beckingham
12a2012f20 Hooks
- Scans <rc.data.location>/hooks for files on initialize.
2014-05-13 17:12:30 -04:00
Paul Beckingham
d12c519380 Hooks
- Added ::onExit.
2014-05-13 16:48:26 -04:00
Paul Beckingham
39c476134f Hooks
- Added ::onLaunch.
2014-05-13 16:34:23 -04:00