@@ -13,7 +13,6 @@ var NwBuilder = require('nw-builder');
1313var gulp = require ( 'gulp' ) ;
1414var concat = require ( 'gulp-concat' ) ;
1515var install = require ( "gulp-install" ) ;
16- var runSequence = require ( 'run-sequence' ) ;
1716var os = require ( 'os' ) ;
1817
1918var distDir = './dist/' ;
@@ -105,10 +104,6 @@ function get_release_filename(platform, ext) {
105104// Tasks
106105// -----------------
107106
108- gulp . task ( 'clean' , function ( ) {
109- return runSequence ( 'clean-dist' , 'clean-apps' , 'clean-debug' , 'clean-release' ) ;
110- } ) ;
111-
112107gulp . task ( 'clean-dist' , function ( ) {
113108 return del ( [ distDir + '**' ] , { force : true } ) ;
114109} ) ;
@@ -129,9 +124,11 @@ gulp.task('clean-cache', function () {
129124 return del ( [ './cache/**' ] , { force : true } ) ;
130125} ) ;
131126
127+ gulp . task ( 'clean' , gulp . series ( [ 'clean-dist' , 'clean-apps' , 'clean-debug' , 'clean-release' ] ) ) ;
128+
132129// Real work for dist task. Done in another task to call it via
133130// run-sequence.
134- gulp . task ( 'dist' , [ 'clean-dist' ] , function ( ) {
131+ gulp . task ( 'dist' , gulp . series ( [ 'clean-dist' ] , function ( ) {
135132 var distSources = [
136133 // CSS files
137134 './css/bootstrap-theme.css' ,
@@ -205,17 +202,16 @@ gulp.task('dist', ['clean-dist'], function () {
205202 . pipe ( install ( {
206203 npm : '--production --ignore-scripts'
207204 } ) ) ; ;
208- } ) ;
205+ } ) ) ;
209206
210207// Create runable app directories in ./apps
211- gulp . task ( 'apps' , [ 'dist' , 'clean-apps' ] , function ( done ) {
208+ gulp . task ( 'apps' , gulp . series ( [ 'dist' , 'clean-apps' ] , function ( done ) {
212209 platforms = getPlatforms ( ) ;
213210 console . log ( 'Release build.' ) ;
214211
215212 destDir = appsDir ;
216213
217214 var builder = new NwBuilder ( {
218- version : '0.25.4' ,
219215 files : './dist/**/*' ,
220216 buildDir : appsDir ,
221217 platforms : platforms ,
@@ -229,54 +225,55 @@ gulp.task('apps', ['dist', 'clean-apps'], function (done) {
229225 builder . build ( function ( err ) {
230226 if ( err ) {
231227 console . log ( 'Error building NW apps: ' + err ) ;
232- runSequence ( 'clean-apps' , function ( ) {
228+ gulp . series ( [ 'clean-apps' ] , function ( ) {
233229 process . exit ( 1 ) ;
234230 } ) ;
235231 }
236232 // Execute post build task
237- runSequence ( 'post-build' , function ( ) {
233+ gulp . series ( [ 'post-build' ] , function ( ) {
238234 done ( ) ;
239235 } ) ;
236+ done ( ) ;
240237 } ) ;
241- } ) ;
238+ done ( ) ;
239+ } ) ) ;
242240
243241// Create debug app directories in ./debug
244- gulp . task ( 'debug' , [ 'dist' , 'clean-debug' ] , function ( done ) {
242+ gulp . task ( 'debug' , gulp . series ( [ 'dist' , 'clean-debug' ] , function ( done ) {
243+
245244 platforms = getPlatforms ( ) ;
246245 console . log ( 'Debug build.' ) ;
247246
248247 destDir = debugDir ;
249248
250249 var builder = new NwBuilder ( {
251250 files : './dist/**/*' ,
252- version : '0.25.4' ,
253251 buildDir : debugDir ,
254252 platforms : platforms ,
255253 flavor : 'sdk' ,
256254 macIcns : './images/inav_icon.icns' ,
257255 macPlist : { 'CFBundleDisplayName' : 'INAV Blackbox Explorer' } ,
258256 winIco : './images/inav_icon.ico'
259257 } ) ;
258+
260259 builder . on ( 'log' , console . log ) ;
261260 builder . build ( function ( err ) {
262261 if ( err ) {
263262 console . log ( 'Error building NW apps: ' + err ) ;
264- runSequence ( 'clean-debug' , function ( ) {
263+ gulp . series ( [ 'clean-debug' ] , function ( ) {
265264 process . exit ( 1 ) ;
266265 } ) ;
267266 }
268267
269- // Execute post build task
270- runSequence ( 'post-build' , function ( ) {
271- // Start debug app
272- var exec = require ( 'child_process' ) . exec ;
273- var run = getRunDebugAppCommand ( ) ;
274- console . log ( 'Starting debug app (' + run + ')...' ) ;
275- exec ( run ) ;
276- done ( ) ;
277- } ) ;
268+ var exec = require ( 'child_process' ) . exec ;
269+ var run = getRunDebugAppCommand ( ) ;
270+ console . log ( 'Starting debug app (' + run + ')...' ) ;
271+ exec ( run ) ;
272+ done ( ) ;
278273 } ) ;
279- } ) ;
274+
275+ done ( ) ;
276+ } ) ) ;
280277
281278gulp . task ( 'post-build' , function ( done ) {
282279 if ( platforms . indexOf ( 'osx64' ) != - 1 ) {
@@ -315,93 +312,59 @@ gulp.task('post-build', function(done) {
315312 done ( ) ;
316313} ) ;
317314
318- // Create distribution package for windows platform
319- function release_win32 ( ) {
315+ gulp . task ( 'release-win32' , function ( ) {
316+ var pkg = require ( './package.json' ) ;
320317 var src = path . join ( appsDir , pkg . name , 'win32' ) ;
321- var output = fs . createWriteStream ( path . join ( releaseDir , get_release_filename ( 'win32' , 'zip' ) ) ) ;
322- var archive = archiver ( 'zip' , {
323- zlib : { level : 9 }
324- } ) ;
325- archive . on ( 'warning' , function ( err ) { throw err ; } ) ;
326- archive . on ( 'error' , function ( err ) { throw err ; } ) ;
327- archive . pipe ( output ) ;
328- archive . directory ( src , 'INAV Blackbox Explorer' ) ;
329- return archive . finalize ( ) ;
330- }
331-
332- // Create distribution package for linux platform
333- function release_linux64 ( ) {
334- var src = path . join ( appsDir , pkg . name , 'linux64' ) ;
335- var output = fs . createWriteStream ( path . join ( releaseDir , get_release_filename ( 'linux64' , 'zip' ) ) ) ;
336- var archive = archiver ( 'zip' , {
337- zlib : { level : 9 }
338- } ) ;
339- archive . on ( 'warning' , function ( err ) { throw err ; } ) ;
340- archive . on ( 'error' , function ( err ) { throw err ; } ) ;
341- archive . pipe ( output ) ;
342- archive . directory ( src , 'INAV Blackbox Explorer' ) ;
343- return archive . finalize ( ) ;
344- }
345-
346- // Create distribution package for chromeos platform
347- function release_chromeos ( ) {
348- var src = distDir ;
349- var output = fs . createWriteStream ( path . join ( releaseDir , get_release_filename ( 'chromeos' , 'zip' ) ) ) ;
318+ var output = fs . createWriteStream ( path . join ( appsDir , get_release_filename ( 'win32' , 'zip' ) ) ) ;
350319 var archive = archiver ( 'zip' , {
351320 zlib : { level : 9 }
352321 } ) ;
353- archive . on ( 'warning' , function ( err ) { throw err ; } ) ;
354- archive . on ( 'error' , function ( err ) { throw err ; } ) ;
322+ archive . on ( 'warning' , function ( err ) { throw err ; } ) ;
323+ archive . on ( 'error' , function ( err ) { throw err ; } ) ;
355324 archive . pipe ( output ) ;
356- archive . directory ( src , false ) ;
325+ archive . directory ( src , 'INAV Blacbox Explorer' ) ;
357326 return archive . finalize ( ) ;
358- }
327+ } ) ;
359328
360- // Create distribution package for macOS platform
361- function release_osx64 ( ) {
329+ gulp . task ( 'release-osx64' , function ( ) {
362330 var pkg = require ( './package.json' ) ;
363331 var src = path . join ( appsDir , pkg . name , 'osx64' , pkg . name + '.app' ) ;
364332 // Check if we want to sign the .app bundle
365-
366- var output = fs . createWriteStream ( path . join ( releaseDir , get_release_filename ( 'macOS' , 'zip' ) ) ) ;
333+ if ( process . env . CODESIGN_IDENTITY ) {
334+ var sign_cmd = 'codesign --verbose --force --sign "' + process . env . CODESIGN_IDENTITY + '" ' + src ;
335+ child_process . execSync ( sign_cmd ) ;
336+ }
337+ var output = fs . createWriteStream ( path . join ( appsDir , get_release_filename ( 'macOS' , 'zip' ) ) ) ;
367338 var archive = archiver ( 'zip' , {
368339 zlib : { level : 9 }
369340 } ) ;
370341 archive . on ( 'warning' , function ( err ) { throw err ; } ) ;
371342 archive . on ( 'error' , function ( err ) { throw err ; } ) ;
372343 archive . pipe ( output ) ;
373- archive . directory ( src , 'INAV Blackbox Explorer.app' ) ;
344+ archive . directory ( src , 'INAV Blacbox Explorer.app' ) ;
374345 return archive . finalize ( ) ;
375- }
376-
377- // Create distributable .zip files in ./release
378- gulp . task ( 'release' , [ 'apps' , 'clean-release' ] , function ( ) {
379- fs . mkdir ( releaseDir , '0775' , function ( err ) {
380- if ( err ) {
381- if ( err . code !== 'EEXIST' ) {
382- throw err ;
383- }
384- }
385- } ) ;
386-
387- platforms = getPlatforms ( true ) ;
388- console . log ( 'Packing release.' ) ;
389-
390- if ( platforms . indexOf ( 'chromeos' ) !== - 1 ) {
391- release_chromeos ( ) ;
392- }
346+ } ) ;
393347
394- if ( platforms . indexOf ( 'linux64' ) !== - 1 ) {
395- release_linux64 ( ) ;
348+ function releaseLinux ( bits ) {
349+ return function ( ) {
350+ var dirname = 'linux' + bits ;
351+ var pkg = require ( './package.json' ) ;
352+ var src = path . join ( appsDir , pkg . name , dirname ) ;
353+ var output = fs . createWriteStream ( path . join ( appsDir , get_release_filename ( dirname , 'zip' ) ) ) ;
354+ var archive = archiver ( 'zip' , {
355+ zlib : { level : 9 }
356+ } ) ;
357+ archive . on ( 'warning' , function ( err ) { throw err ; } ) ;
358+ archive . on ( 'error' , function ( err ) { throw err ; } ) ;
359+ archive . pipe ( output ) ;
360+ archive . directory ( src , 'INAV Blacbox Explorer' ) ;
361+ return archive . finalize ( ) ;
396362 }
363+ }
397364
398- if ( platforms . indexOf ( 'osx64' ) !== - 1 ) {
399- release_osx64 ( ) ;
400- }
365+ gulp . task ( 'release-linux32' , releaseLinux ( 32 ) ) ;
366+ gulp . task ( 'release-linux64' , releaseLinux ( 64 ) ) ;
401367
402- if ( platforms . indexOf ( 'win32' ) !== - 1 ) {
403- release_win32 ( ) ;
404- }
405- } ) ;
368+ gulp . task ( 'release' , gulp . series ( [ 'apps' , 'clean-release' , 'release-win32' , 'release-linux64' , 'release-osx64' ] ) ) ;
406369
407- gulp . task ( 'default' , [ 'debug' ] ) ;
370+ gulp . task ( 'default' , gulp . series ( [ 'debug' ] ) ) ;
0 commit comments