-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.js
54 lines (45 loc) · 1.65 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
const gulp = require('gulp');
const rimrafcb = require('rimraf');
const webpack = require('webpack-stream');
const vsce = require('vsce');
const zip = require('gulp-zip');
const path = require('path');
const fs = require('fs');
const rename = require('gulp-rename');
function getRuntime() {
const yarnrc = fs.readFileSync(path.join(__dirname, '.yarnrc'), 'utf8');
const runtime = /^runtime "(.*)"$/m.exec(yarnrc)[1];
return runtime;
}
function getVersion() {
const yarnrc = fs.readFileSync(path.join(__dirname, '.yarnrc'), 'utf8');
const target = /^target "(.*)"$/m.exec(yarnrc)[1];
return target;
}
function rimraf(path) {
return new Promise((res, rej) => rimrafcb(path, e => e ? rej(e) : res()));
}
gulp.task('clean', () => {
return Promise.all([rimraf('out'), rimraf('dist'), rimraf('*.vsix'), rimraf('*.zip')]);
});
gulp.task('compile', gulp.series('clean', () => {
return gulp.src('src/**')
.pipe(webpack(require('./webpack.config.js')))
.pipe(gulp.dest('./out'));
}));
const runtime = getRuntime();
const runTimeVersion = getVersion();
const platform = process.platform;
gulp.task('zip', async () => {
const files = await vsce.listFiles();
return gulp.src(files, { base: './' })
.pipe(zip(`azuredatastudio-sqlite-${platform}-${runtime}-${runTimeVersion}.zip`, { }))
.pipe(gulp.dest('./artifacts'));
});
gulp.task('vsix', async () => {
await vsce.createVSIX();
return gulp.src('*.vsix', { })
.pipe(rename(`azuredatastudio-sqlite-${platform}-${runtime}-${runTimeVersion}.vsix`))
.pipe(gulp.dest('./artifacts'));
});
gulp.task('package', gulp.series('compile', gulp.parallel('zip', 'vsix')));