Hey folks, As you may know, pluginstall is the low level awesome utility written by Andrew Lunny, and it's a very key element in the cordova command line tools that several people have been working on. Andrew and I spoke yesterday over email, and he's planning to be afk from this tool for several weeks as he gets caught up with work, and finishes the major phonegap build release they are doing. I'm starting this thread to have a discussion about some changes; I want to make sure we can come to some agreement before proceeding with actual merging and cleanup.
For brevity's sake I'm going to assume you already have a working knowledge of how pluginstall works but of course feel free to ask questions as needed. These are the major points to discuss: - IMO pluginstall should force namespacing to prevent multiple plugins from having colliding assets. For example, Child Browser plugin would put it's native files in ios projects under Plugins/Child_Browser and for android projects under src/Child_Browser/com/phonegap/.. - I've looked at a few plugins, and i think we can change from explicit to copying declarations in the manifest file to implicit; rather than having to declare source-files, header-files, and asset-files in plugin.xml, all resources should be copied in, and use the file extension to dictate how it's handled (for example .h files will always be added as headers to an ios project's xcodeproj file, etc) - rename <config-file> to <xml-graft> and <plugins-plist> to <plist-add>. Since these tags represent operations being performed on data files, let's identify and rename them as such. - change the cli signature to be use more descriptive flags. For example maybe something like pluginstall --project <project path> --platform <ios|android> -- --plugin <plugin archive path> This will be important as the options available for this tool grow - multiple calls to addplugin should not pile up duplicate references to files. We can probably solve this quickly by internally calling uninstall plugin, then install - for uninstall purposes, let's keep a copy of plugin.xml in each platforms namespaced directory so we have a manifest for removing it later. for example from bullet 1, the ios platform would have the file Plugins/Child_Browser/plugin.xml -Mike