This repository has been archived by the owner on Nov 8, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.js
86 lines (76 loc) · 2.67 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
const gulp = require("gulp");
const tsc = require("gulp-typescript");
const del = require("del");
const runSequence = require("run-sequence");
const rename = require("gulp-rename");
const jeditor = require("gulp-json-editor");
const run = require("gulp-run");
const argv = require('yargs').argv;
const fs = require("fs");
const moment = require("moment");
const env = argv.release ? "" : "-private";
const patch = (argv.patch !== null && argv.patch !== undefined)
? argv.patch
: moment().format("YYDDDHHmm");;
gulp.task("clean", () => del.sync("tmp"));
gulp.task("compile", () => {
const tscConfig = tsc.createProject("tsconfig.json", {
target: "es2015",
module: "commonjs",
noResolve: false,
typescript: require("typescript")
});
return gulp
.src(["./src/**/*.ts", '!./src/debug/**/*.*'])
.pipe(tscConfig())
.on("error", () => process.exit(1))
.pipe(gulp.dest("./tmp/"));
});
gulp.task("copy", () => {
const streams = [
gulp
.src("./tasks/**/*.*")
.pipe(gulp.dest("./tmp/tasks")),
gulp
.src("./vss-extension.json")
.pipe(jeditor((json) => {
json.id = `rust-vsts${env}`;
json.name = `Rust${env}`;
json.public = env ? false : true;
json.version = json.version.replace("{patch}", patch);
return json;
}))
.pipe(gulp.dest("./tmp/")),
gulp
.src(["./DETAILS.md", "./LICENSE", "./icon.png"])
.pipe(gulp.dest("./tmp/")),
gulp
.src("./images/*.png")
.pipe(gulp.dest("./tmp/images/"))
];
fs.readdirSync("./tmp/").forEach((file) => {
const source = `./tmp/${file}`;
const stat = fs.statSync(source);
if (stat && stat.isFile()) {
const target = `./tmp/tasks/${file.replace(/\.[^/.]+$/, "")}`;
const stream = gulp
.src(source)
.pipe(rename("index.js"))
.pipe(gulp.dest(target));
streams.push(stream);
streams.push(del(source));
streams.push(
gulp
.src("./tmp/common/*.js")
.pipe(gulp.dest(`${ target }/common`))
);
}
});
return streams;
});
gulp.task("install", () => {
return ["install", "cargo", "rustup", "rustc"]
.map((task) => run(`npm install azure-pipelines-task-lib --prefix ./tmp/tasks/${task}`).exec());
});
gulp.task("default", (cb) => runSequence("clean", "compile", "copy", "install", cb));
gulp.task("pre-package", () => del("./tmp/common"));