Repository: cordova-android
Updated Branches:
  refs/heads/master 3bfeda4a3 -> 1af5ade39


CB-12169: Check for build directory before running a clean


Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/5017e230
Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/5017e230
Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/5017e230

Branch: refs/heads/master
Commit: 5017e2302b90f8555bb105dc5a90b0483b384280
Parents: 3bfeda4
Author: Joe Bowser <[email protected]>
Authored: Mon Nov 21 14:41:14 2016 -0800
Committer: Joe Bowser <[email protected]>
Committed: Mon Nov 21 14:46:09 2016 -0800

----------------------------------------------------------------------
 bin/templates/cordova/Api.js                | 8 ++++++--
 bin/templates/cordova/lib/AndroidProject.js | 9 +++++++++
 2 files changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-android/blob/5017e230/bin/templates/cordova/Api.js
----------------------------------------------------------------------
diff --git a/bin/templates/cordova/Api.js b/bin/templates/cordova/Api.js
index 92f9565..8e4711c 100644
--- a/bin/templates/cordova/Api.js
+++ b/bin/templates/cordova/Api.js
@@ -72,6 +72,7 @@ function Api(platform, platformRootDir, events) {
         defaultConfigXml: path.join(self.root, 'cordova/defaults.xml'),
         strings: path.join(self.root, 'res/values/strings.xml'),
         manifest: path.join(self.root, 'AndroidManifest.xml'),
+        build: path.join(self.root, 'build'),
         // NOTE: Due to platformApi spec we need to return relative paths here
         cordovaJs: 'bin/templates/project/assets/www/cordova.js',
         cordovaJsSrc: 'cordova-js-src'
@@ -241,11 +242,12 @@ Api.prototype.addPlugin = function (plugin, 
installOptions) {
            // Do some basic argument parsing
             var opts = {};
 
-            // Skip cleaning prepared files when not invoking via cordova CLI.
+             // Skip cleaning prepared files when not invoking via cordova CLI.
             opts.noPrepare = true;
 
-            if(!(AndroidStudio.isAndroidStudioProject(self.root)))
+            if(!AndroidStudio.isAndroidStudioProject(self.root) && 
!project.isClean()) {
               return self.clean(opts);
+            }
         })
        .then(function () {
             return PluginManager.get(self.platform, self.locations, project)
@@ -396,6 +398,8 @@ Api.prototype.clean = function(cleanOptions) {
       });
 };
 
+
+
 /**
  * Performs a requirements check for current platform. Each platform defines 
its
  *   own set of requirements, which should be resolved before platform can be

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/5017e230/bin/templates/cordova/lib/AndroidProject.js
----------------------------------------------------------------------
diff --git a/bin/templates/cordova/lib/AndroidProject.js 
b/bin/templates/cordova/lib/AndroidProject.js
index 1fc3bdf..c55ee6c 100644
--- a/bin/templates/cordova/lib/AndroidProject.js
+++ b/bin/templates/cordova/lib/AndroidProject.js
@@ -197,5 +197,14 @@ AndroidProject.prototype.getUninstaller = function (type) {
     return pluginHandlers.getUninstaller(type);
 };
 
+/*
+ * This checks if an Android project is clean or has old build artifacts
+ */
+
+AndroidProject.prototype.isClean = function() {
+    var build_path = path.join(this.projectDir, "build");
+    //If the build directory doesn't exist, it's clean
+    return !(fs.existsSync(build_path));
+};
 
 module.exports = AndroidProject;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to