aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extension/gulpfile.js112
-rw-r--r--extension/manifest.json2
-rw-r--r--extension/package.json8
3 files changed, 120 insertions, 2 deletions
diff --git a/extension/gulpfile.js b/extension/gulpfile.js
new file mode 100644
index 000000000..2f35e2b89
--- /dev/null
+++ b/extension/gulpfile.js
@@ -0,0 +1,112 @@
+
+"use strict";
+
+const gulp = require("gulp");
+const map = require("map-stream");
+const ts = require("gulp-typescript");
+const zip = require("gulp-zip");
+const fs = require("fs");
+const del = require("del");
+const through = require('through2');
+const File = require('vinyl');
+
+const paths = {
+ ts: [
+ "lib/**.{ts,tsx}",
+ "background/*.{ts,tsx}",
+ "content_scripts/*.{ts,tsx}",
+ "popup/*.{ts,tsx}",
+ "pages/*.{ts,tsx}",
+ ],
+ dist: [
+ "manifest.json",
+ "img/*",
+ "lib/vendor/*",
+ "lib/emscripten/libwrapper.js"
+ ],
+}
+
+
+
+const tsBaseArgs = {
+ target: "es5",
+ jsx: "react",
+ experimentalDecorators: true,
+ module: "system",
+ sourceMap: true,
+ noLib: true,
+};
+
+
+let manifest;
+(() => {
+ const f = fs.readFileSync("manifest.json", "utf8");
+ manifest = JSON.parse(f);
+})();
+
+console.log("version:", manifest.version);
+
+
+gulp.task("clean", function() {
+ del("_build/ext");
+});
+
+// Package the extension
+gulp.task("build-prod", ["clean"], function() {
+ console.log("hello");
+ const tsArgs = {};
+ Object.assign(tsArgs, tsBaseArgs);
+ console.log("args", JSON.stringify(tsArgs));
+ tsArgs.typescript = require("typescript");
+ // relative to the gulp.dest
+ tsArgs.outDir = ".";
+ // We don't want source maps for production
+ tsArgs.sourceMap = undefined;
+ gulp.src(paths.ts)
+ .pipe(map((f,cb) => { console.log(f.path); cb(null, f); }))
+ .pipe(ts(tsArgs))
+ .pipe(gulp.dest("_build/ext/"));
+ gulp.src(paths.dist, {base: ".", stripBOM: false})
+ .pipe(gulp.dest("_build/ext/"));
+});
+
+
+gulp.task("package", ["build-prod"], function() {
+ console.log("hello, packaging");
+ let zipname = String.prototype.concat("taler-wallet-", manifest.version, ".zip");
+ gulp.src("_build/ext/*", {buffer: false, stripBOM: false})
+ .pipe(zip(zipname))
+ .pipe(gulp.dest("_build/"));
+});
+
+function tsconfig(confBase) {
+ let conf = {
+ compilerOptions: {},
+ files: []
+ };
+ Object.assign(conf.compilerOptions, confBase);
+ return through.obj(function(file, enc, cb) {
+ console.log("file", file.relative);
+ conf.files.push(file.relative);
+ cb();
+ }, function(cb) {
+ console.log("done");
+ let x = JSON.stringify(conf, null, 2);
+ let f = new File({
+ path: "tsconfig.json",
+ contents: new Buffer(x),
+ });
+ this.push(f)
+ cb();
+ });
+}
+
+
+// Generate the tsconfig file
+// that should be used during development.
+gulp.task("tsconfig", function() {
+ gulp.src(paths.ts, {base: "."})
+ .pipe(tsconfig(tsBaseArgs))
+ .pipe(gulp.dest("."));
+});
+
diff --git a/extension/manifest.json b/extension/manifest.json
index 619d986a2..3590a126e 100644
--- a/extension/manifest.json
+++ b/extension/manifest.json
@@ -2,7 +2,7 @@
"description": "Privacy preserving and transparent payments",
"manifest_version": 2,
"name": "GNU Taler Wallet",
- "version": "0.5",
+ "version": "0.5.1",
"applications": {
"gecko": {
diff --git a/extension/package.json b/extension/package.json
index b9dbfb608..7103bbd74 100644
--- a/extension/package.json
+++ b/extension/package.json
@@ -14,7 +14,13 @@
"license": "GPL-3.0",
"devDependencies": {
"better-assert": "^1.0.2",
+ "del": "^2.2.0",
+ "gulp": "^3.9.0",
+ "gulp-typescript": "^2.10.0",
+ "gulp-zip": "^3.1.0",
+ "map-stream": "0.0.6",
"mocha": "^2.3.4",
- "systemjs": "^0.19.14"
+ "systemjs": "^0.19.14",
+ "typescript": "^1.8.0-dev.20160118"
}
}