@@ -15,6 +15,12 @@ const npmCache = require('./npm-cache');
1515
1616const 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
1925function 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
7090module . 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