Maybe harsh but I'm in favor of abandoning shell scripts altogether and forcing modules as the way for hooks. Cross platform yada yada.
On Tue, Apr 22, 2014 at 9:23 AM, Andrew Grieve <agri...@chromium.org> wrote: > Very good point. Seen at least one other bug report that struggled with > this use-case. > > I *think* hooks-as-a-module makes it easier. > > Just to be clear - I am also in favour of allowing hooks to be npm modules. > Possible there's use in continuing to support bash scripts as hooks, but > there are definitely advantages to allowing modules. > > > On Tue, Apr 22, 2014 at 12:15 PM, Michal Mocny <mmo...@chromium.org> > wrote: > > > I was recently trying to solve a problem with hooks: how do I require() > > cordova itself? (I was trying to call "cordova plugin ls" and ended up > > just writing my own crude inline implementation instead). If the hooks > > themselves are being require()-ed, does it simplify that problem? > > > > -Michal > > > > > > On Tue, Apr 22, 2014 at 12:04 PM, Andrew Grieve <agri...@chromium.org > > >wrote: > > > > > There are some *disadvantages* to not sub-shelling out for hooks: > > > - Harder to capture their stdio (certainly do-able though by swapping > out > > > system.std* for the duration of the hook) > > > - Harder to handle script failures (e.g. if they throw an uncaught > > > exception, we would like to be able to say "This hook script failed: > > > foo.js") > > > - Maybe this is doable, by storing a global exception-was-thrown > > > callback? > > > - Gives hooks the ability to mess up cordova's environment (although > > maybe > > > the vm thing addresses this?) > > > > > > Would like to see tests for these things added before we launch this > > > feature. > > > > > > > > > > > > On Tue, Apr 22, 2014 at 10:40 AM, Sergey Grebnov (Akvelon) < > > > v-seg...@microsoft.com> wrote: > > > > > > > +1, I will name it as 'context' > > > > > > > > Thx! > > > > Sergey > > > > -----Original Message----- > > > > From: Jonathan Bond-Caron [mailto:jbo...@gdesolutions.com] > > > > Sent: Tuesday, April 22, 2014 7:34 AM > > > > To: dev@cordova.apache.org > > > > Subject: RE: Proposal: hooks support for plugins > > > > > > > > On Mon Apr 21 03:39 PM, Sergey Grebnov (Akvelon) wrote: > > > > > module.exports = function(platform, projectDir, pluginDir, > cmdLine) { > > > > > console.log('hook.js: ' + platform); > > > > > console.log('hook.js: ' + projectDir); > > > > > console.log('hook.js: ' + pluginDir); > > > > > console.log('hook.js: ' + cmdLine); > > > > > > > > > > > > > Personnaly prefer: > > > > > > > > > module.exports = function(hookApi) { > > > > > console.log('hook.js: ' + hookApi.platform); > > > > > console.log('hook.js: ' + hookApi.projectDir); > > > > > console.log('hook.js: ' + hookApi.pluginDir); > > > > > console.log('hook.js: ' + hookApi.cmdLine);} > > > > > > > > Make it easier to pass other stuff in the future & using a sandoxed > > > > hookApi object. > > > > > > > > > > > > > > > > > >