[Pkg-javascript-commits] [pdf.js] 261/414: Introducing gulp.
David Prévot
taffit at moszumanska.debian.org
Tue Jun 28 17:12:28 UTC 2016
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository pdf.js.
commit 9798e1007ef934e35e0da0e3d7e09ccd7c98a8f8
Author: Yury Delendik <ydelendik at mozilla.com>
Date: Fri Mar 4 09:36:46 2016 -0600
Introducing gulp.
---
.travis.yml | 2 ++
README.md | 15 +++++----
gulpfile.js | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
make.js | 22 +++----------
package.json | 4 ++-
5 files changed, 121 insertions(+), 25 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 796d98f..907c45e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,3 +1,5 @@
language: node_js
node_js:
- "0.12"
+before_install:
+ - npm install -g gulp-cli
diff --git a/README.md b/README.md
index 7f50b87..15811c7 100644
--- a/README.md
+++ b/README.md
@@ -39,7 +39,7 @@ PDF.js is built into version 19+ of Firefox, however the extension is still avai
+ The official extension for Chrome can be installed from the [Chrome Web Store](https://chrome.google.com/webstore/detail/pdf-viewer/oemmndcbldboiebfnladdacbdfmadadm).
*This extension is maintained by [@Rob--W](https://github.com/Rob--W).*
-+ Build Your Own - Get the code as explained below and issue `node make chromium`. Then open
++ Build Your Own - Get the code as explained below and issue `gulp chromium`. Then open
Chrome, go to `Tools > Extension` and load the (unpackaged) extension from the
directory `build/chromium`.
@@ -51,16 +51,19 @@ To get a local copy of the current code, clone it using git:
$ cd pdf.js
Next, install Node.js via the [official package](http://nodejs.org) or via
-[nvm](https://github.com/creationix/nvm). If everything worked out, run
+[nvm](https://github.com/creationix/nvm). You need to install the gulp package
+globally (see also [gulp's getting started](https://github.com/gulpjs/gulp/blob/master/docs/getting-started.md#getting-started)):
- $ npm install
+ $ npm install -g gulp-cli
+
+If everything worked out, install all dependencies for PDF.js:
-to install all dependencies for PDF.js.
+ $ npm install
Finally you need to start a local web server as some browsers do not allow opening
PDF files using a file:// URL. Run
- $ node make server
+ $ gulp server
and then you can open
@@ -75,7 +78,7 @@ It is also possible to view all test PDF files on the right side by opening
In order to bundle all `src/` files into two productions scripts and build the generic
viewer, issue:
- $ node make generic
+ $ gulp generic
This will generate `pdf.js` and `pdf.worker.js` in the `build/generic/build/` directory.
Both scripts are needed but only `pdf.js` needs to be included since `pdf.worker.js` will
diff --git a/gulpfile.js b/gulpfile.js
new file mode 100644
index 0000000..623be57
--- /dev/null
+++ b/gulpfile.js
@@ -0,0 +1,103 @@
+/* Copyright 2016 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/* jshint node:true */
+/* globals target */
+
+'use strict';
+
+var gulp = require('gulp');
+var gutil = require('gulp-util');
+var stream = require('stream');
+
+require('./make.js');
+
+function createStringSource(filename, content) {
+ var source = stream.Readable({ objectMode: true });
+ source._read = function () {
+ this.push(new gutil.File({
+ cwd: '',
+ base: '',
+ path: filename,
+ contents: new Buffer(content)
+ }));
+ this.push(null);
+ };
+ return source;
+}
+
+gulp.task('default', function() {
+ console.log('Available tasks:');
+ var tasks = Object.keys(gulp.tasks);
+ tasks.sort();
+ tasks.forEach(function (taskName) {
+ console.log(' ' + taskName);
+ });
+});
+
+gulp.task('server', function () {
+ console.log();
+ console.log('### Starting local server');
+
+ var WebServer = require('./test/webserver.js').WebServer;
+ var server = new WebServer();
+ server.port = 8888;
+ server.start();
+});
+
+gulp.task('makefile', function () {
+ var makefileContent = 'help:\n\tgulp\n\n';
+ var targetsNames = [];
+ for (var i in target) {
+ makefileContent += i + ':\n\tgulp ' + i + '\n\n';
+ targetsNames.push(i);
+ }
+ makefileContent += '.PHONY: ' + targetsNames.join(' ') + '\n';
+ return createStringSource('Makefile', makefileContent)
+ .pipe(gulp.dest('.'));
+});
+
+// Getting all shelljs registered tasks and register them with gulp
+var gulpContext = false;
+for (var taskName in global.target) {
+ if (taskName in gulp.tasks) {
+ continue;
+ }
+
+ var task = (function (shellJsTask) {
+ return function () {
+ gulpContext = true;
+ try {
+ shellJsTask.call(global.target);
+ } finally {
+ gulpContext = false;
+ }
+ };
+ })(global.target[taskName]);
+ gulp.task(taskName, task);
+}
+
+Object.keys(gulp.tasks).forEach(function (taskName) {
+ var oldTask = global.target[taskName] || function () {
+ gulp.run(taskName);
+ };
+
+ global.target[taskName] = function () {
+ // The require('shelljs/make') import in make.js will try to execute tasks
+ // listed in arguments, guarding with gulpContext
+ if (gulpContext) {
+ oldTask.call(global.target);
+ }
+ };
+});
diff --git a/make.js b/make.js
index 050a798..6449e2f 100644
--- a/make.js
+++ b/make.js
@@ -1477,15 +1477,8 @@ target.mozcentralcheck = function() {
//
// make server
//
-target.server = function() {
- cd(ROOT_DIR);
- echo();
- echo('### Starting local server');
-
- var WebServer = require('./test/webserver.js').WebServer;
- var server = new WebServer();
- server.port = 8888;
- server.start();
+target.server = function () {
+ exit(exec('gulp server'));
};
//
@@ -1529,15 +1522,8 @@ target.clean = function() {
//
// make makefile
//
-target.makefile = function() {
- var makefileContent = 'help:\n\tnode make\n\n';
- var targetsNames = [];
- for (var i in target) {
- makefileContent += i + ':\n\tnode make ' + i + '\n\n';
- targetsNames.push(i);
- }
- makefileContent += '.PHONY: ' + targetsNames.join(' ') + '\n';
- makefileContent.to('Makefile');
+target.makefile = function () {
+ exit(exec('gulp makefile'));
};
//
diff --git a/package.json b/package.json
index ada1163..c2d9e31 100644
--- a/package.json
+++ b/package.json
@@ -2,6 +2,8 @@
"name": "pdf.js",
"version": "0.8.0",
"devDependencies": {
+ "gulp": "^3.9.1",
+ "gulp-util": "^3.0.7",
"jsdoc": "^3.3.0-alpha9",
"jshint": "~2.8.0",
"node-ensure": "^0.0.0",
@@ -14,7 +16,7 @@
"yargs": "^3.14.0"
},
"scripts": {
- "test": "node make lint"
+ "test": "gulp lint"
},
"repository": {
"type": "git",
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/pdf.js.git
More information about the Pkg-javascript-commits
mailing list