Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
de-push-proxy-plugin / hooks / updateBuildGradle.js
Size: Mime:
'use strict';
module.exports = function(context) {

    //we need to change the order of repositories jcenter and google maven in the build.gradle file
    //jcenter()
    //maven {
    //    url "https://maven.google.com"
    //}
    //to
    //maven {
    //    url "https://maven.google.com"
    //}
    //jcenter()
  
    var cordovaProjectPath =  context.opts.projectRoot;
    const fs = require('fs');
    const path = require('path');
  
    if(!isCordovaAndroidVersion7(cordovaProjectPath)) {
        var installedPlatforms = context.opts.platforms;
        for (var i=0;i<installedPlatforms.length;i++){
            if (installedPlatforms[i]==='android'){
                prepareBuildGradle();
            }
        }
    }
  
    function prepareBuildGradle(){
      console.log("Android platform installed...modifying build.gradle...");
      console.log("Updating Gradle project file...");
      
      var buildGradlePath = getBuildGradlePath(cordovaProjectPath);
      console.log("buildGradlePath="+buildGradlePath);
  
      if (fs.existsSync(buildGradlePath)){
        var gradleContents = fs.readFileSync(buildGradlePath, 'utf8');
    
        //var fromStr = 'jcenter()\n        maven {\n            url "https://maven.google.com"\n		}'
        var regex = /jcenter\(\)[\s]+maven \{[\s]+url "https:\/\/maven.google.com"[\s]+\}/gm;
        var toStr = 'maven {\n            url "https://maven.google.com"\n		}\n        jcenter()';
        var gradleContents = gradleContents.replace(regex, toStr);
        fs.writeFileSync(buildGradlePath, gradleContents);
  
        console.log("build.gradle update complete.");
      } else {
        console.error("build.gradle not found.");
      }
    }
    
    function getBuildGradlePath(projectRoot) {
        return path.join(projectRoot, "platforms", "android", "build.gradle");
    }

    function isCordovaAndroidVersion7(projectRoot) {
        var jsonFile = loadPackageJSON(projectRoot);
        if(jsonFile.dependencies){
          var androidVersionStr=jsonFile.dependencies["cordova-android"] || '';
          if(androidVersionStr){
            var version = androidVersionStr.replace(/^[^0-9]+/, '');
            let versionParts = version.split("\.");
            if(versionParts && versionParts[0] && parseInt(versionParts[0])>= 7){
              return true;
            }
          }
        }
        return false;
    }
    
    function loadPackageJSON(projectRoot){
      return JSON.parse(fs.readFileSync(path.resolve(projectRoot,"package.json")));
    }
  
}