Skip to content

Commit 386b558

Browse files
committed
added support for Cordova 10 upgrade
1 parent acee2c7 commit 386b558

2 files changed

Lines changed: 26 additions & 7 deletions

File tree

index.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,15 @@ const args = require('yargs')
2424
})
2525
.option('cv', {
2626
alias: 'cordovaVersion',
27-
describe: 'Cordova Version',
28-
default: '9.0.0'
27+
describe: 'Cordova Version'
2928
})
3029
.option('cav', {
3130
alias: 'cordovaAndroidVersion',
32-
describe: 'Cordova Android Version',
33-
default: '8.0.0'
31+
describe: 'Cordova Android Version'
3432
})
3533
.option('civ', {
3634
alias: 'cordovaIosVersion',
37-
describe: 'Cordova iOS Version',
38-
default: '5.1.1'
35+
describe: 'Cordova iOS Version'
3936
})
4037
.option('aks', {
4138
alias: 'aKeyStore',

src/command.js

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ const npmCache = require('./npm-cache');
1515

1616
const loggerLabel = 'wm-cordova-cli';
1717

18+
const PHONEGAP_CLI = {
19+
'cli-9.0.0' : ['9.0.0', '8.0.0', '5.1.1'],
20+
'cli-8.1.1' : ['8.1.1', '7.1.2', '4.5.5'],
21+
'cli-8.0.0' : ['8.0.0', '7.0.0', '4.5.4']
22+
};
23+
1824

1925
function setupBuildDirectory(src, dest) {
2026
const target = dest;
@@ -66,6 +72,20 @@ async function updatePackageJson(dest, cordovaVersion, cordovaIosVersion, cordov
6672
fs.writeFileSync(projectDir + 'config.xml', data);
6773
}
6874

75+
function setPreferences(projectDir, args) {
76+
let data = fs.readFileSync(projectDir + 'config.xml').toString();
77+
const config = et.parse(data);
78+
const preferences = config.findall('./preference');
79+
const preferenceValue = (pName) => {
80+
const sp = preferences.find(p => p.attrib['name'] === pName);
81+
return sp && sp.attrib['value'];
82+
};
83+
const phonegapCli = PHONEGAP_CLI[preferenceValue('phonegap-version')] || [];
84+
args.cordovaVersion = args.cordovaVersion || args.cv || preferenceValue('wm-cordova') || phonegapCli[0];
85+
args.cordovaAndroidVersion = args.cordovaAndroidVersion || args.cav ||preferenceValue('wm-cordova-android') || phonegapCli[1];
86+
args.cordovaIosVersion = args.cordovaIosVersion || args.civ ||preferenceValue('wm-cordova-ios') || phonegapCli[2];
87+
}
88+
6989

7090
module.exports = {
7191
build: async function (args) {
@@ -81,8 +101,9 @@ module.exports = {
81101
])
82102
}
83103
args.src = path.resolve(args.src) + '/';
84-
args.dest = path.resolve(args.dest || (args.src) + '../build') + '/';
104+
args.dest = path.resolve(args.dest || (args.src) + `../build-${args.platform}`) + '/';
85105
setupBuildDirectory(args.src, args.dest);
106+
setPreferences(args.dest, args);
86107
await updatePackageJson(args.dest, args.cordovaVersion, args.cordovaIosVersion, args.cordovaAndroidVersion);
87108
config.src = args.dest;
88109
config.outputDirectory = config.src + 'output/';
@@ -152,6 +173,7 @@ module.exports = {
152173
label: loggerLabel,
153174
message: args.platform + ' BUILD Failed. Due to :' + e
154175
});
176+
console.error(e);
155177
return { success : false };
156178
}
157179
}

0 commit comments

Comments
 (0)