[
https://issues.apache.org/jira/browse/CB-6481?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13975942#comment-13975942
]
ASF GitHub Bot commented on CB-6481:
------------------------------------
Github user sgrebnov commented on the pull request:
https://github.com/apache/cordova-plugman/pull/74#issuecomment-40968416
Created issue CB-6481 to cover this work.
Switched to nodejs module loader.
Sample hook file implementation with async functionality:
```
var Q = require('./q');
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);
var deferral = new Q.defer();
setTimeout(function(){
deferral.resolve();
}, 1000);
return deferral.promise;
}
```
> adds plugin level hooks support
> -------------------------------
>
> Key: CB-6481
> URL: https://issues.apache.org/jira/browse/CB-6481
> Project: Apache Cordova
> Issue Type: New Feature
> Components: CLI, Plugman
> Reporter: Sergey Grebnov
> Assignee: Sergey Grebnov
>
> As per "Proposal: hooks support for plugins" dev mail thread discussion
> Hi, I have an idea how we can add more flexibility to plugin developers.
> 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.
> Example configuration could look like
> ```
> <script type="postinstall" src="scripts/postinstall.js" />
> <script type="preinstall" src="scripts/preinstall.js" />
> <script type="install" src="scripts/install.js" />
> ```
> beforeinstall/preinstall – run before plugin is installed
> install/postinstall/afterinstall – run after plugin is installed
> uninstall – run after plugin is uninstalled
--
This message was sent by Atlassian JIRA
(v6.2#6252)