pick up quality folder during gulp mixin

This commit is contained in:
Joao Moreno 2016-01-19 11:26:05 +01:00
parent a9b3b8c026
commit dc4cc72aa7
2 changed files with 44 additions and 6 deletions

View file

@ -7,6 +7,8 @@
require('events').EventEmitter.defaultMaxListeners = 100; require('events').EventEmitter.defaultMaxListeners = 100;
var gulp = require('gulp'); var gulp = require('gulp');
var json = require('gulp-json-editor');
var buffer = require('gulp-buffer');
var tsb = require('gulp-tsb'); var tsb = require('gulp-tsb');
var filter = require('gulp-filter'); var filter = require('gulp-filter');
var mocha = require('gulp-mocha'); var mocha = require('gulp-mocha');
@ -22,6 +24,7 @@ var path = require('path');
var bom = require('gulp-bom'); var bom = require('gulp-bom');
var sourcemaps = require('gulp-sourcemaps'); var sourcemaps = require('gulp-sourcemaps');
var _ = require('underscore'); var _ = require('underscore');
var assign = require('object-assign');
var quiet = !!process.env['VSCODE_BUILD_QUIET']; var quiet = !!process.env['VSCODE_BUILD_QUIET'];
var rootDir = path.join(__dirname, 'src'); var rootDir = path.join(__dirname, 'src');
@ -119,13 +122,28 @@ gulp.task('test', function () {
.once('end', function () { process.exit(); }); .once('end', function () { process.exit(); });
}); });
function rebase(count) {
return rename(function (f) {
var parts = f.dirname.split(/[\/\\]/);
f.dirname = parts.slice(count).join(path.sep);
});
}
gulp.task('mixin', function () { gulp.task('mixin', function () {
var repo = process.env['VSCODE_MIXIN_REPO']; var repo = process.env['VSCODE_MIXIN_REPO'];
if (!repo) { if (!repo) {
console.log('Missing VSCODE_MIXIN_REPO, skipping mixin');
return; return;
} }
var quality = process.env['VSCODE_QUALITY'];
// if (!quality) {
// console.log('Missing VSCODE_QUALITY, skipping mixin');
// return;
// }
var url = 'https://github.com/' + repo + '/archive/master.zip'; var url = 'https://github.com/' + repo + '/archive/master.zip';
var opts = { base: '' }; var opts = { base: '' };
var username = process.env['VSCODE_MIXIN_USERNAME']; var username = process.env['VSCODE_MIXIN_USERNAME'];
@ -136,11 +154,30 @@ gulp.task('mixin', function () {
} }
console.log('Mixing in sources from \'' + url + '\':'); console.log('Mixing in sources from \'' + url + '\':');
return remote(url, opts)
var all = remote(url, opts)
.pipe(zip.src()) .pipe(zip.src())
.pipe(rename(function (f) { .pipe(rebase(1));
f.dirname = f.dirname.replace(/^[^\/\\]+[\/\\]?/, '');
})) if (quality) {
var build = all.pipe(filter('build/**'));
var productJsonFilter = filter('product.json', { restore: true });
var mixin = all
.pipe(filter('quality/' + quality + '/**'))
.pipe(rebase(2))
.pipe(productJsonFilter)
.pipe(buffer())
.pipe(json(function (patch) {
var original = require('./product.json');
return assign(original, patch);
}))
.pipe(productJsonFilter.restore);
all = es.merge(build, mixin);
}
return all
.pipe(es.mapSync(function (f) { .pipe(es.mapSync(function (f) {
console.log(f.relative); console.log(f.relative);
return f; return f;

View file

@ -48,6 +48,7 @@
"gulp-atom-electron": "^1.1.0", "gulp-atom-electron": "^1.1.0",
"gulp-azure-storage": "^0.3.0", "gulp-azure-storage": "^0.3.0",
"gulp-bom": "^1.0.0", "gulp-bom": "^1.0.0",
"gulp-buffer": "0.0.2",
"gulp-concat": "^2.6.0", "gulp-concat": "^2.6.0",
"gulp-cssnano": "^2.1.0", "gulp-cssnano": "^2.1.0",
"gulp-filter": "^3.0.0", "gulp-filter": "^3.0.0",
@ -59,12 +60,11 @@
"gulp-sourcemaps": "^1.6.0", "gulp-sourcemaps": "^1.6.0",
"gulp-symdest": "^1.0.0", "gulp-symdest": "^1.0.0",
"gulp-tsb": "~1.7.3", "gulp-tsb": "~1.7.3",
"gulp-tslint": "^4.3.0",
"gulp-uglify": "^1.4.1", "gulp-uglify": "^1.4.1",
"gulp-util": "^3.0.6", "gulp-util": "^3.0.6",
"gulp-vinyl-zip": "^1.1.0", "gulp-vinyl-zip": "^1.1.0",
"gulp-watch": "^4.2.4", "gulp-watch": "^4.2.4",
"gulp-tslint": "^4.3.0",
"tslint-microsoft-contrib": "^2.0.0",
"innosetup-compiler": "^5.5.60", "innosetup-compiler": "^5.5.60",
"istanbul": "^0.3.17", "istanbul": "^0.3.17",
"jsdom-no-contextify": "^3.1.0", "jsdom-no-contextify": "^3.1.0",
@ -80,6 +80,7 @@
"rimraf": "^2.2.8", "rimraf": "^2.2.8",
"sinon": "^1.17.2", "sinon": "^1.17.2",
"source-map": "^0.4.4", "source-map": "^0.4.4",
"tslint-microsoft-contrib": "^2.0.0",
"uglify-js": "2.4.8", "uglify-js": "2.4.8",
"underscore": "^1.8.2", "underscore": "^1.8.2",
"vinyl": "^0.4.5" "vinyl": "^0.4.5"