Skip to content

Commit bde1e67

Browse files
authored
Merge pull request #28 from iNavFlight/dzikuvx-gulp-4
Dzikuvx gulp 4
2 parents ee4a708 + 8072a4f commit bde1e67

File tree

3 files changed

+2024
-886
lines changed

3 files changed

+2024
-886
lines changed

gulpfile.js

Lines changed: 56 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ var NwBuilder = require('nw-builder');
1313
var gulp = require('gulp');
1414
var concat = require('gulp-concat');
1515
var install = require("gulp-install");
16-
var runSequence = require('run-sequence');
1716
var os = require('os');
1817

1918
var 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-
112107
gulp.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

281278
gulp.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

Comments
 (0)