There's definitely a security angle to this. E.g. You install a plugin and now it's running code on your machine in a non-sandboxed way. Maybe could warn before running the script for the first time, or show a badge on its plugins.cordova.io page to highlight this.
install hooks might make it harder to uninstall a plugin as well. On Sat, Mar 1, 2014 at 6:47 PM, Jesse <purplecabb...@gmail.com> wrote: > I originally replied to the personal cc: version of this message I got. > Here is what I said : > > It's a very interesting idea and would be powerful. > My only concern is that Cordova apps can be built just by calling platform > create scripts, with plugins added by calling plugman directly. The hooks > are very specific to cordova-cli builds. > > Another approach would be to add platform level hooks that plugins could > subscribe to, maybe just pre-build and post-build. > > And plugman level scripts for install/uninstall > > Then possibly even cordova-cli hooks that just trigger the underlying > functions. > > > @purplecabbage > risingj.com > > > On Sat, Mar 1, 2014 at 10:39 AM, Sergey Grebnov (Akvelon) < > v-seg...@microsoft.com> wrote: > > > Hi, I have an idea how we can add more flexibility to plugin developers > > and would like to discuss it. > > > > Note, right now we have Application Developers - someone who use Cordova > > for developing applications and Plugin Developers - someone who creates > > plugins so that Application Developers can use them. For Application > > Developers we expose hooks so that they can customize their > > build/package/etc process. I want us to provide similar sort of > flexibility > > to Plugin Developers so that they can go beyond of <source/>, > <framework/> > > tags and get mechanism to add custom installation, build logic required > > by a plugin. Example usage will include: downloading/compiling additional > > binaries, marking source file to be copied to output dir, changing target > > build platform, etc. At present time the steps described could be only > > achieved by hooks manually added by Application Developer, but the right > > way is to allow Plugin Developer to expose this as part of plugin > > definition. > > > > I personally like how npm-scripts[1] work so propose to introduce > > additional <scripts> section in plugin.xml, for example > > > > <scripts preinstall="preinstall.js" postinstall="afterinstall.js" /> > > > > preinstall.js is called before plugman.raw.install(platform, > platformRoot, > > path.basename(dir), pluginsDir, options) and could be used to check > system > > requirements, download/compile required libraries, etc > > > > afterinstall.js is called after and could be used to add/configure > > additional project references, etc > > uninstall.js - for discussion, could be used for clean up, etc > > > > As for required parameters I think we should pass at least application > > folder and target platform. > > > > Thoughts? Propose to discuss this on the monthly sync, Mar 4, 2014 (7pm > > EST) > > > > [1] https://www.npmjs.org/doc/misc/npm-scripts.html > > > > -Sergey > > >