diff --git a/.gitignore b/.gitignore index 3132bdf..349d0f9 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,6 @@ nbproject/ /config.js /keys.js /dist -brouter-web.*.zip +brouter-web*.zip yarn-error.log package-lock.json diff --git a/gulpfile.js b/gulpfile.js index 20190fd..e6a479b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -26,6 +26,7 @@ var scanner = require('i18next-scanner'); var jsonConcat = require('gulp-json-concat'); var rename = require('gulp-rename'); var browserSync = require('browser-sync'); +var merge = require('merge-stream'); const server = browserSync.create(); @@ -73,6 +74,7 @@ var paths = { 'layers/config/geometry.js' ], layersConfigDestName: 'layersConf.js', + zip: ['dist/**', 'index.html', 'config.template.js', 'keys.template.js'], dest: 'dist', destName: 'brouter-web' }; @@ -336,16 +338,75 @@ gulp.task( cb(); }) ); + gulp.task('release:zip', function() { gutil.log(gutil.colors.green('Build brouter-web.' + nextVersion + '.zip')); return gulp - .src(['dist/**', 'index.html', 'config.template.js', 'keys.template.js'], { + .src(paths.zip, { base: '.' }) .pipe(zip('brouter-web.' + nextVersion + '.zip')) .pipe(gulp.dest('.')); }); +gulp.task('release:zip_standalone', function() { + var version = pkg.version; + var destName = 'brouter-web-standalone.' + version + '.zip'; + + gutil.log(gutil.colors.green('Build ' + destName)); + + var brouterWeb = gulp + .src(paths.zip, { + base: '.' + }) + .pipe( + rename(function(path) { + path.dirname = 'brouter-web/' + path.dirname; + }) + ); + + var serverRoot = gulp + .src( + [ + 'misc/readmes/profile_developers_guide.txt', + 'brouter-server/target/brouter-server-*-jar-with-dependencies.jar' + ], + { + cwd: path.join(process.cwd(), '../brouter') + } + ) + .pipe( + rename(function(path) { + if (path.basename.startsWith('brouter-server-')) { + path.basename = 'brouter'; + } + }) + ); + + var serverProfiles = gulp.src( + [ + 'profiles2/**', + '!profiles2/all.brf', + '!profiles2/car-eco-suspect_scan.brf', + '!profiles2/car-traffic_analysis.brf', + '!profiles2/softaccess.brf' + ], + { + cwd: path.join(process.cwd(), '../brouter/misc/'), + base: '../brouter/misc/' + } + ); + + var serverScripts = gulp.src(['standalone/**'], { + cwd: path.join(process.cwd(), '../brouter/misc/scripts/'), + base: '../brouter/misc/scripts/' + }); + + return merge(brouterWeb, serverRoot, serverProfiles, serverScripts) + .pipe(zip(destName)) + .pipe(gulp.dest('.')); +}); + gulp.task('release:publish', function() { return gulp.src('./brouter-web.' + nextVersion + '.zip').pipe( release({ diff --git a/package.json b/package.json index d6f4263..80205e3 100644 --- a/package.json +++ b/package.json @@ -105,6 +105,7 @@ "gulp-zip": "^4.0.0", "husky": "^2.3.0", "i18next-scanner": "^2.9.1", + "merge-stream": "^2.0.0", "node-fetch": "^2.3.0", "npmfiles": "^0.1.1", "prettier": "^1.17.1", diff --git a/yarn.lock b/yarn.lock index 7a3b170..7ab0983 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5278,6 +5278,11 @@ merge-stream@^1.0.0: dependencies: readable-stream "^2.0.1" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"