From e6f4935c7badc81dd190199bf4c093ad1adb233c Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Thu, 18 Oct 2012 23:13:55 -0700 Subject: [PATCH] Cleanup package install related files. Former-commit-id: ac905fe660af05077a52b001b295ee557aaacfa8 --- .travis.yml | 4 +- build/minify.js | 4 +- build/post-install.js | 89 +++++++++++++++++++------------------------ 3 files changed, 43 insertions(+), 54 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7a4d28bb5..88cb9b6ef 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,5 +3,5 @@ node_js: - 0.6 - 0.8 before_script: - - "curl -H'Accept: application/vnd.github.v3.raw' https://api.github.com/repos/bestiejs/lodash/git/blobs/aa29a2ecf6f51d4da5a2a418c0d4ea0e368ee80d | tar xvz -Cvendor" - - "curl -H'Accept: application/vnd.github.v3.raw' https://api.github.com/repos/bestiejs/lodash/git/blobs/827f406a02626c1c6723e8ae281b6785d36375c1 | tar xvz -Cvendor" \ No newline at end of file + - "curl -H 'Accept: application/vnd.github.v3.raw' https://api.github.com/repos/bestiejs/lodash/git/blobs/aa29a2ecf6f51d4da5a2a418c0d4ea0e368ee80d | tar xvz -C vendor" + - "curl -H 'Accept: application/vnd.github.v3.raw' https://api.github.com/repos/bestiejs/lodash/git/blobs/827f406a02626c1c6723e8ae281b6785d36375c1 | tar xvz -C vendor" \ No newline at end of file diff --git a/build/minify.js b/build/minify.js index e819b38c6..9548bda5a 100755 --- a/build/minify.js +++ b/build/minify.js @@ -8,10 +8,10 @@ path = require('path'), spawn = require('child_process').spawn; - /** The directory that is the base of the repository */ + /** The path of the directory that is the base of the repository */ var basePath = fs.realpathSync(path.join(__dirname, '..')); - /** The directory where the Closure Compiler is located */ + /** The path of the directory where the Closure Compiler is located */ var closurePath = path.join(basePath, 'vendor', 'closure-compiler', 'compiler.jar'); /** Load other modules */ diff --git a/build/post-install.js b/build/post-install.js index 75a9dc342..233a829ad 100644 --- a/build/post-install.js +++ b/build/post-install.js @@ -3,82 +3,71 @@ 'use strict'; /** Load Node modules */ - var fs = require('fs'), - zlib = require('zlib'), - path = require('path'), + var exec = require('child_process').exec, + fs = require('fs'), https = require('https'), - exec = require('child_process').exec, - tar = require('tar'); + path = require('path'), + tar = require('tar'), + zlib = require('zlib'); - /** The directory that is the base of the repository */ + /** The path of the directory that is the base of the repository */ var basePath = fs.realpathSync(path.join(__dirname, '..')); - /** The `vendor` directory */ + /** The path of the `vendor` directory */ var vendorPath = path.join(basePath, 'vendor'); /** * Fetches a required `.tar.gz` dependency with the given Git object ID from - * the Lo-Dash repo on GitHub. The object ID may be obtained by running `git - * hash-object path/to/dependency.tar.gz`. - * - * @param {String} source The Git object ID of the `.tar.gz` package. - * @param {String|Object} The extraction target directory, or an object - * containing archived file names and target paths as key-value pairs. - * @param {Function} callback The function to call once the extraction - * finishes. + * the Lo-Dash repo on GitHub. The object ID may be obtained by running + * `git hash-object path/to/dependency.tar.gz`. * + * @param {String} objectId The Git object ID of the `.tar.gz` package. + * @param {String} The extraction target directory. + * @param {Function} callback The function to call once the extraction finishes. */ - function getDependency(source, targets, callback) { + function getDependency(objectId, targets, callback) { https.get({ 'host': 'api.github.com', - 'path': '/repos/bestiejs/lodash/git/blobs/' + source, + 'path': '/repos/bestiejs/lodash/git/blobs/' + objectId, 'headers': { 'Accept': 'application/vnd.github.v3.raw' } }, function(response) { - var parser; - if (typeof targets == 'string') { - parser = new tar.Extract({ - 'path': targets - }); - } else { - parser = new tar.Parse(); - parser.on('entry', function(entry) { - var path = entry.path; - if (path in targets) { - entry.pipe(fs.createWriteStream(targets[path])); - } - }); - } - parser.on('end', function() { - callback(null, targets); - }); - parser.on('error', callback); + var parser = new tar.Extract({ + 'path': targets + }) + .on('end', callback) + .on('error', callback); + response.pipe(zlib.createUnzip()).pipe(parser); - }).on('error', callback); + }) + .on('error', callback); } exec('npm -g root', function(exception, stdout, stderr) { if (exception || stderr) { console.error('There was a problem loading the npm registry.'); process.exit(1); - } else if (path.resolve(basePath, '..') == stdout.trim()) { - // download Closure Compiler - getDependency('aa29a2ecf6f51d4da5a2a418c0d4ea0e368ee80d', vendorPath, function(exception) { - var statusCode = 0; + } + // exit early if not a global install + if (path.resolve(basePath, '..') != stdout.trim()) { + return; + } + // download Closure Compiler + getDependency('aa29a2ecf6f51d4da5a2a418c0d4ea0e368ee80d', vendorPath, function(exception) { + var statusCode = 0; + if (exception) { + console.error('There was a problem downloading the Closure Compiler.'); + statusCode = 1; + } + // download UglifyJS + getDependency('827f406a02626c1c6723e8ae281b6785d36375c1', vendorPath, function(exception) { if (exception) { - console.error('There was a problem downloading the Closure Compiler.'); + console.error('There was a problem downloading UglifyJS.'); statusCode = 1; } - // download UglifyJS - getDependency('827f406a02626c1c6723e8ae281b6785d36375c1', vendorPath, function(exception) { - if (exception) { - console.error('There was a problem downloading UglifyJS.'); - statusCode = 1; - } - process.exit(statusCode); - }); + process.exit(statusCode); }); - } + }); }); }());