[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