diff --git a/gulpfile.js b/gulpfile.js index f1ccbc383b..d500a0a4ee 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -10,8 +10,10 @@ browserify = require('browserify'), source = require('vinyl-source-stream'), googleWebFonts = require('gulp-google-webfonts'), - webpack = require('webpack-stream') - jeditor = require("gulp-json-editor"); + webpack = require('webpack-stream'), + jeditor = require("gulp-json-editor"), + gulpUtil = require('gulp-util'), + child = require('child_process'); var paths = {}; paths.dist = './dist/'; @@ -254,6 +256,23 @@ gulp.task('dist-edge', ['dist:edge'], function (cb) { gulp.task('webfonts', function () { return gulp.src('./webfonts.list') .pipe(googleWebFonts({})) - .pipe(gulp.dest(paths.webfontsDir)) - ; + .pipe(gulp.dest(paths.webfontsDir)); +}); + +function npmCommand(commands, cb) { + var npmLogger = (buffer) => { + buffer.toString() + .split(/\n/) + .forEach((message) => gulpUtil.log(message)); + }; + var npmCommand = process.platform === 'win32' ? 'npm.cmd' : 'npm'; + var npmChild = child.spawn(npmCommand, commands); + npmChild.stdout.on('data', npmLogger); + npmChild.stderr.on('data', npmLogger); + npmChild.stderr.on('close', cb); + return npmChild; +} + +gulp.task('webext:firefox', function (cb) { + return npmCommand(['run', 'start:firefox'], cb); }); diff --git a/package.json b/package.json index f9261a635a..63eab9ea8c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,9 @@ { "name": "bitwarden", "version": "0.0.0", + "scripts": { + "start:firefox": "web-ext run --source-dir ./dist/" + }, "devDependencies": { "jquery": "2.2.4", "bootstrap": "3.3.7", @@ -34,6 +37,9 @@ "node-forge": "0.7.1", "webpack-stream": "4.0.0", "gulp-json-editor": "2.2.1", - "papaparse": "4.3.5" + "papaparse": "4.3.5", + "web-ext": "2.0.0", + "child_process": "1.0.2", + "gulp-util": "3.0.8" } }