Repository URL to install this package:
|
Version:
1.0.1 ▾
|
'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")));
}
}