@@ -104,9 +104,9 @@ function processPackageDebug(done) {
104104
105105// dist_yarn MUST be done after dist_src
106106
107- const distBuild = gulp . series ( processPackageRelease , dist_src , dist_changelog , dist_yarn , dist_locale , dist_libraries , dist_resources , dist_rollup , gulp . series ( cordova_dist ( true ) ) ) ;
107+ const distBuild = gulp . series ( processPackageRelease , dist_src , dist_changelog , dist_yarn , dist_locale , dist_libraries , dist_resources , dist_rollup , gulp . series ( cordova_dist ( ) ) ) ;
108108
109- const debugDistBuild = gulp . series ( processPackageDebug , dist_src , dist_changelog , dist_yarn , dist_locale , dist_libraries , dist_resources , dist_rollup , gulp . series ( cordova_dist ( false ) ) ) ;
109+ const debugDistBuild = gulp . series ( processPackageDebug , dist_src , dist_changelog , dist_yarn , dist_locale , dist_libraries , dist_resources , dist_rollup , gulp . series ( cordova_dist ( ) ) ) ;
110110
111111const distRebuild = gulp . series ( clean_dist , distBuild ) ;
112112gulp . task ( 'dist' , distRebuild ) ;
@@ -293,21 +293,48 @@ function processPackage(done, gitRevision, isReleaseBuild) {
293293 metadata . packageId = pkg . name ;
294294 }
295295
296- const packageJson = new stream . Readable ;
297- packageJson . push ( JSON . stringify ( pkg , undefined , 2 ) ) ;
298- packageJson . push ( null ) ;
296+ function version_prompt ( ) {
297+ return gulp . src ( '.' )
298+ . pipe ( prompt . prompt ( [ {
299+ type : 'input' ,
300+ name : 'version' ,
301+ message : `Package version (default: ${ pkg . version } ):` ,
302+ } , {
303+ type : 'input' ,
304+ name : 'storeVersion' ,
305+ message : 'Google Play store version (<x.y.z>, default: package version):' ,
306+ } ] , function ( res ) {
307+ if ( res . version ) {
308+ pkg . version = res . version ;
309+ }
310+ if ( res . storeVersion ) {
311+ metadata . storeVersion = res . storeVersion ;
312+ }
313+ } ) ) ;
314+ } ;
299315
300- Object . keys ( pkg )
301- . filter ( key => metadataKeys . includes ( key ) )
302- . forEach ( ( key ) => {
303- metadata [ key ] = pkg [ key ] ;
304- } ) ;
316+ function write_package_file ( ) {
317+ Object . keys ( pkg )
318+ . filter ( key => metadataKeys . includes ( key ) )
319+ . forEach ( ( key ) => {
320+ metadata [ key ] = pkg [ key ] ;
321+ } ) ;
305322
306- packageJson
307- . pipe ( source ( 'package.json' ) )
308- . pipe ( gulp . dest ( DIST_DIR ) ) ;
323+ const packageJson = new stream . Readable ;
324+ packageJson . push ( JSON . stringify ( pkg , undefined , 2 ) ) ;
325+ packageJson . push ( null ) ;
309326
310- done ( ) ;
327+ return packageJson
328+ . pipe ( source ( 'package.json' ) )
329+ . pipe ( gulp . dest ( DIST_DIR ) ) ;
330+ } ;
331+
332+ const platforms = getPlatforms ( ) ;
333+ if ( platforms . indexOf ( 'android' ) !== - 1 && isReleaseBuild ) {
334+ gulp . series ( version_prompt , write_package_file ) ( done ) ;
335+ } else {
336+ gulp . series ( write_package_file ) ( done ) ;
337+ }
311338}
312339
313340function dist_src ( ) {
@@ -466,7 +493,7 @@ function debug(done) {
466493 buildNWAppsWrapper ( platforms , 'sdk' , DEBUG_DIR , done ) ;
467494}
468495
469- function injectARMCache ( flavor , callback ) {
496+ function injectARMCache ( flavor , done ) {
470497 const flavorPostfix = `-${ flavor } ` ;
471498 const flavorDownloadPostfix = flavor !== 'normal' ? `-${ flavor } ` : '' ;
472499 clean_cache ( ) . then ( function ( ) {
@@ -529,7 +556,7 @@ function injectARMCache(flavor, callback) {
529556 clean_debug ( ) ;
530557 process . exit ( 1 ) ;
531558 }
532- callback ( ) ;
559+ done ( ) ;
533560 }
534561 ) ;
535562 }
@@ -593,10 +620,10 @@ function buildNWApps(platforms, flavor, dir, done) {
593620
594621function getGitRevision ( done , callback , isReleaseBuild ) {
595622 let gitRevision = 'norevision' ;
596- git . diff ( [ '--shortstat' ] , function ( err , diff ) {
597- if ( ! err && ! diff ) {
598- git . log ( [ '-1' , '--pretty=format:%h' ] , function ( err , rev ) {
599- if ( ! err ) {
623+ git . diff ( [ '--shortstat' ] , function ( err1 , diff ) {
624+ if ( ! err1 && ! diff ) {
625+ git . log ( [ '-1' , '--pretty=format:%h' ] , function ( err2 , rev ) {
626+ if ( ! err2 ) {
600627 gitRevision = rev . latest . hash ;
601628 }
602629
@@ -881,7 +908,7 @@ function listReleaseTasks(isReleaseBuild, appDirectory) {
881908}
882909
883910// Cordova
884- function cordova_dist ( isReleaseBuild ) {
911+ function cordova_dist ( ) {
885912 const distTasks = [ ] ;
886913 const platforms = getPlatforms ( ) ;
887914 if ( platforms . indexOf ( 'android' ) !== - 1 ) {
@@ -893,11 +920,7 @@ function cordova_dist(isReleaseBuild) {
893920 distTasks . push ( cordova_rename_src_config ) ;
894921 distTasks . push ( cordova_rename_src_package ) ;
895922 distTasks . push ( cordova_packagejson ) ;
896- if ( isReleaseBuild ) {
897- distTasks . push ( cordova_configxml ) ;
898- } else {
899- distTasks . push ( cordova_debug_configxml ) ;
900- }
923+ distTasks . push ( cordova_configxml ) ;
901924 distTasks . push ( cordova_rename_build_json ) ;
902925 distTasks . push ( cordova_browserify ) ;
903926 distTasks . push ( cordova_depedencies ) ;
@@ -989,8 +1012,8 @@ function cordova_packagejson() {
9891012 . pipe ( gulp . dest ( CORDOVA_DIST_DIR ) ) ;
9901013}
9911014
992- function cordova_configxml_internal ( ) {
993- let androidName = metadata . packageId . replace ( NAME_REGEX , '_' ) ;
1015+ function cordova_configxml ( ) {
1016+ const androidName = metadata . packageId . replace ( NAME_REGEX , '_' ) ;
9941017
9951018 return gulp . src ( [ `${ CORDOVA_DIST_DIR } config.xml` ] )
9961019 . pipe ( xmlTransformer ( [
@@ -1000,37 +1023,18 @@ function cordova_configxml_internal() {
10001023 ] , 'http://www.w3.org/ns/widgets' ) )
10011024 . pipe ( xmlTransformer ( [
10021025 { path : '.' , attr : { 'id' : `com.betaflight.${ androidName } ` } } ,
1003- { path : '.' , attr : { 'version' : metadata . version } } ,
1026+ { path : '.' , attr : { 'version' : metadata . storeVersion ? metadata . storeVersion : metadata . version } } ,
10041027 ] ) )
10051028 . pipe ( gulp . dest ( CORDOVA_DIST_DIR ) ) ;
10061029}
10071030
1008- function cordova_debug_configxml ( ) {
1009- return cordova_configxml_internal ( ) ;
1010- }
1011-
1012- function cordova_configxml ( callback ) {
1013- return gulp . series ( function version_prompt ( ) {
1014- return gulp . src ( '.' )
1015- . pipe ( prompt . prompt ( {
1016- type : 'input' ,
1017- name : 'version' ,
1018- message : `Bundle version (default: ${ metadata . version } ):` ,
1019- } , function ( res ) {
1020- if ( res . version ) {
1021- metadata . version = res . version ;
1022- }
1023- } ) ) ;
1024- } , cordova_configxml_internal ) ( callback ) ;
1025- }
1026-
10271031function cordova_rename_build_json ( ) {
10281032 return gulp . src ( `${ CORDOVA_DIR } build_template.json` )
10291033 . pipe ( rename ( 'build.json' ) )
10301034 . pipe ( gulp . dest ( CORDOVA_DIST_DIR ) ) ;
10311035}
10321036
1033- function cordova_browserify ( callback ) {
1037+ function cordova_browserify ( done ) {
10341038 const readFile = function ( file ) {
10351039 return new Promise ( function ( resolve ) {
10361040 if ( ! file . includes ( "node_modules" ) ) {
@@ -1048,7 +1052,7 @@ function cordova_browserify(callback) {
10481052 glob ( `${ CORDOVA_DIST_DIR } www/**/*.js` , { } , function ( err , files ) {
10491053 const readLoop = function ( ) {
10501054 if ( files . length === 0 ) {
1051- callback ( ) ;
1055+ done ( ) ;
10521056 } else {
10531057 const file = files . pop ( ) ;
10541058 readFile ( file ) . then ( function ( ) {
@@ -1087,7 +1091,7 @@ function cordova_debug() {
10871091 cordova . run ( ) ;
10881092}
10891093
1090- function cordova_debug_build ( cb ) {
1094+ function cordova_debug_build ( done ) {
10911095 cordova . build ( {
10921096 'platforms' : [ 'android' ] ,
10931097 'options' : {
@@ -1096,13 +1100,14 @@ function cordova_debug_build(cb) {
10961100 } ,
10971101 } ) . then ( function ( ) {
10981102 process . chdir ( '../' ) ;
1099- cb ( ) ;
1100- } ) ;
11011103
1102- console . log ( 'APK will be generated at dist_cordova/platforms/android/app/build/outputs/apk/release/app-release.apk' ) ;
1104+ console . log ( 'APK has been generated at dist_cordova/platforms/android/app/build/outputs/apk/release/app-release.apk' ) ;
1105+
1106+ done ( ) ;
1107+ } ) ;
11031108}
11041109
1105- function cordova_build ( callback ) {
1110+ function cordova_build ( done ) {
11061111 let storePassword = '' ;
11071112 return gulp . series ( function password_prompt ( ) {
11081113 return gulp . src ( '.' )
@@ -1119,11 +1124,11 @@ function cordova_build(callback) {
11191124 'android' : {
11201125 'release' : {
11211126 'storePassword' : storePassword ,
1122- }
1123- }
1127+ } ,
1128+ } ,
11241129 } ) )
11251130 . pipe ( gulp . dest ( './' ) ) ;
1126- } , function build ( cb ) {
1131+ } , function build ( done ) {
11271132 return cordova . build ( {
11281133 'platforms' : [ 'android' ] ,
11291134 'options' : {
@@ -1134,24 +1139,28 @@ function cordova_build(callback) {
11341139 // Delete the file containing the store password
11351140 del ( [ 'build.json' ] , { force : true } ) ;
11361141 process . chdir ( '../' ) ;
1137- cb ( ) ;
1138- } ) ;
1139- } ) ( callback ) ;
11401142
1141- console . log ( 'AAB will be generated at dist_cordova/platforms/android/app/build/outputs/bundle/release/app.aab' ) ;
1143+ console . log ( 'AAB has been generated at dist_cordova/platforms/android/app/build/outputs/bundle/release/app.aab' ) ;
1144+ done ( ) ;
1145+ } ) ;
1146+ } ) ( done ) ;
11421147}
11431148
11441149async function cordova_debug_release ( ) {
1145- const filename = await getReleaseFilename ( 'android' , 'apk' ) ;
1150+ const filename = getReleaseFilename ( 'android' , 'apk' ) ;
1151+
11461152 console . log ( `Release APK : release/${ filename } ` ) ;
1153+
11471154 return gulp . src ( `${ CORDOVA_DIST_DIR } platforms/android/app/build/outputs/apk/debug/app-debug.apk` )
11481155 . pipe ( rename ( filename ) )
11491156 . pipe ( gulp . dest ( RELEASE_DIR ) ) ;
11501157}
11511158
11521159async function cordova_release ( ) {
1153- const filename = await getReleaseFilename ( 'android' , 'aab' ) ;
1160+ const filename = getReleaseFilename ( 'android' , 'aab' ) ;
1161+
11541162 console . log ( `Release AAB : release/${ filename } ` ) ;
1163+
11551164 return gulp . src ( `${ CORDOVA_DIST_DIR } platforms/android/app/build/outputs/bundle/release/app.aab` )
11561165 . pipe ( rename ( filename ) )
11571166 . pipe ( gulp . dest ( RELEASE_DIR ) ) ;
0 commit comments