pick up quality folder during gulp mixin
This commit is contained in:
parent
a9b3b8c026
commit
dc4cc72aa7
45
gulpfile.js
45
gulpfile.js
|
@ -7,6 +7,8 @@
|
|||
require('events').EventEmitter.defaultMaxListeners = 100;
|
||||
|
||||
var gulp = require('gulp');
|
||||
var json = require('gulp-json-editor');
|
||||
var buffer = require('gulp-buffer');
|
||||
var tsb = require('gulp-tsb');
|
||||
var filter = require('gulp-filter');
|
||||
var mocha = require('gulp-mocha');
|
||||
|
@ -22,6 +24,7 @@ var path = require('path');
|
|||
var bom = require('gulp-bom');
|
||||
var sourcemaps = require('gulp-sourcemaps');
|
||||
var _ = require('underscore');
|
||||
var assign = require('object-assign');
|
||||
var quiet = !!process.env['VSCODE_BUILD_QUIET'];
|
||||
|
||||
var rootDir = path.join(__dirname, 'src');
|
||||
|
@ -119,13 +122,28 @@ gulp.task('test', function () {
|
|||
.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 () {
|
||||
var repo = process.env['VSCODE_MIXIN_REPO'];
|
||||
|
||||
if (!repo) {
|
||||
console.log('Missing VSCODE_MIXIN_REPO, skipping mixin');
|
||||
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 opts = { base: '' };
|
||||
var username = process.env['VSCODE_MIXIN_USERNAME'];
|
||||
|
@ -136,11 +154,30 @@ gulp.task('mixin', function () {
|
|||
}
|
||||
|
||||
console.log('Mixing in sources from \'' + url + '\':');
|
||||
return remote(url, opts)
|
||||
|
||||
var all = remote(url, opts)
|
||||
.pipe(zip.src())
|
||||
.pipe(rename(function (f) {
|
||||
f.dirname = f.dirname.replace(/^[^\/\\]+[\/\\]?/, '');
|
||||
}))
|
||||
.pipe(rebase(1));
|
||||
|
||||
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) {
|
||||
console.log(f.relative);
|
||||
return f;
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
"gulp-atom-electron": "^1.1.0",
|
||||
"gulp-azure-storage": "^0.3.0",
|
||||
"gulp-bom": "^1.0.0",
|
||||
"gulp-buffer": "0.0.2",
|
||||
"gulp-concat": "^2.6.0",
|
||||
"gulp-cssnano": "^2.1.0",
|
||||
"gulp-filter": "^3.0.0",
|
||||
|
@ -59,12 +60,11 @@
|
|||
"gulp-sourcemaps": "^1.6.0",
|
||||
"gulp-symdest": "^1.0.0",
|
||||
"gulp-tsb": "~1.7.3",
|
||||
"gulp-tslint": "^4.3.0",
|
||||
"gulp-uglify": "^1.4.1",
|
||||
"gulp-util": "^3.0.6",
|
||||
"gulp-vinyl-zip": "^1.1.0",
|
||||
"gulp-watch": "^4.2.4",
|
||||
"gulp-tslint": "^4.3.0",
|
||||
"tslint-microsoft-contrib": "^2.0.0",
|
||||
"innosetup-compiler": "^5.5.60",
|
||||
"istanbul": "^0.3.17",
|
||||
"jsdom-no-contextify": "^3.1.0",
|
||||
|
@ -80,6 +80,7 @@
|
|||
"rimraf": "^2.2.8",
|
||||
"sinon": "^1.17.2",
|
||||
"source-map": "^0.4.4",
|
||||
"tslint-microsoft-contrib": "^2.0.0",
|
||||
"uglify-js": "2.4.8",
|
||||
"underscore": "^1.8.2",
|
||||
"vinyl": "^0.4.5"
|
||||
|
|
Loading…
Reference in a new issue