diff options
author | Florian Dold <florian.dold@gmail.com> | 2016-02-29 18:03:02 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2016-02-29 18:03:02 +0100 |
commit | c962e9402123900c53967c14cf809ea10576cdb8 (patch) | |
tree | e7df9cfdd6fceae30fb99c8ec6be5e07c8b153a8 /extension/gulpfile.js | |
parent | 30ee3320c788129b258ed8b42f4fc63d28431e2f (diff) |
restructure
Diffstat (limited to 'extension/gulpfile.js')
-rw-r--r-- | extension/gulpfile.js | 179 |
1 files changed, 0 insertions, 179 deletions
diff --git a/extension/gulpfile.js b/extension/gulpfile.js deleted file mode 100644 index fc0134457..000000000 --- a/extension/gulpfile.js +++ /dev/null @@ -1,179 +0,0 @@ -/* - This file is part of TALER - (C) 2015 GNUnet e.V. - - TALER is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - TALER is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - TALER; see the file COPYING. If not, If not, see <http://www.gnu.org/licenses/> - */ - -"use strict"; - -/** - * Run with - * $ gulp <taskname> - * - * The important tasks are: - * - tsconfig: generate tsconfig.json file for - * development - * - package: create Chrome extension zip file in - * build/. - */ - -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 jsonTransform = require('gulp-json-transform'); - -const paths = { - ts: { - release: [ - "lib/**/*.{ts,tsx}", - "background/*.{ts,tsx}", - "content_scripts/*.{ts,tsx}", - "popup/*.{ts,tsx}", - "pages/*.{ts,tsx}", - "!**/*.d.ts" - ], - dev: [ - "test/tests/*.{ts,tsx}" - ], - }, - dist: [ - "*.po", - "img/*", - "style/*.css", - "lib/vendor/*", - "lib/emscripten/libwrapper.js", - "lib/module-trampoline.js", - "popup/**/*.{html,css}", - "pages/**/*.{html,css}", - ], -}; - - - -const tsBaseArgs = { - target: "es5", - jsx: "react", - experimentalDecorators: true, - module: "system", - sourceMap: true, - noLib: true, - noImplicitReturns: true, - noFallthroughCasesInSwitch: true, -}; - - -let manifest; -(() => { - const f = fs.readFileSync("manifest.json", "utf8"); - manifest = JSON.parse(f); -})(); - - -gulp.task("clean", function () { - return del("build/ext"); -}); - - -gulp.task("dist-prod", ["clean"], function () { - return gulp.src(paths.dist, {base: ".", stripBOM: false}) - .pipe(gulp.dest("build/ext/")); -}); - -gulp.task("compile-prod", ["clean"], function () { - const tsArgs = {}; - Object.assign(tsArgs, tsBaseArgs); - tsArgs.typescript = require("typescript"); - // relative to the gulp.dest - tsArgs.outDir = "."; - // We don't want source maps for production - tsArgs.sourceMap = undefined; - return gulp.src(paths.ts.release) - .pipe(ts(tsArgs)) - .pipe(gulp.dest("build/ext/")); -}); - -gulp.task("manifest-stable", ["clean"], function () { - return gulp.src("manifest.json") - .pipe(jsonTransform((data) => { - data.name = "GNU Taler Wallet (stable)"; - return data; - }, 2)) - .pipe(gulp.dest("build/ext/")); -}); - -gulp.task("manifest-unstable", ["clean"], function () { - return gulp.src("manifest.json") - .pipe(jsonTransform((data) => { - data.name = "GNU Taler Wallet (unstable)"; - return data; - }, 2)) - .pipe(gulp.dest("build/ext/")); -}); - - -gulp.task("package-stable", ["compile-prod", "dist-prod", "manifest-stable"], function () { - let zipname = String.prototype.concat("taler-wallet-stable-", manifest.version, ".zip"); - return gulp.src("build/ext/**", {buffer: false, stripBOM: false}) - .pipe(zip(zipname)) - .pipe(gulp.dest("build/")); -}); - -gulp.task("package-unstable", ["compile-prod", "dist-prod", "manifest-unstable"], function () { - let zipname = String.prototype.concat("taler-wallet-unstable-", manifest.version, ".zip"); - return gulp.src("build/ext/**", {buffer: false, stripBOM: false}) - .pipe(zip(zipname)) - .pipe(gulp.dest("build/")); -}); - - -/** - * Generate a tsconfig.json with the - * given compiler options that compiles - * all files piped into it. - */ -function tsconfig(confBase) { - let conf = { - compilerOptions: {}, - files: [] - }; - Object.assign(conf.compilerOptions, confBase); - return through.obj(function(file, enc, cb) { - conf.files.push(file.relative); - cb(); - }, function(cb) { - 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() { - return gulp.src(Array.prototype.concat(paths.ts.release, paths.ts.dev), {base: "."}) - .pipe(tsconfig(tsBaseArgs)) - .pipe(gulp.dest(".")); -}); - - -gulp.task("default", ["package-stable", "tsconfig"]); |