From a68a7056e62632e24b389eab68b7c88c302e8bb6 Mon Sep 17 00:00:00 2001 From: isaacs Date: Tue, 24 Aug 2010 14:49:25 -0700 Subject: Use the abstracted-out package default loader thing --- lib/build.js | 67 +++++------------------------------------------------------- 1 file changed, 5 insertions(+), 62 deletions(-) (limited to 'lib') diff --git a/lib/build.js b/lib/build.js index 7b3eca1fd..de375682b 100644 --- a/lib/build.js +++ b/lib/build.js @@ -27,6 +27,8 @@ var npm = require("../npm") , shimIfExists = writeShim.ifExists , readInstalled = require("./utils/read-installed") , asyncMap = require("./utils/async-map") + , find = require("./utils/find") + , loadPackageDefaults = require("./utils/load-package-defaults") module.exports = build @@ -107,7 +109,7 @@ function readAll (folders, cb) { // FIXME: in 0.3.0, remove this, and make it the default // behavior in read-json.js if (!er && d.main && d.modules && d.modules.index) delete d.main - cb(er, d) + loadPackageDefaults(d, cb) }) }, cb) } @@ -185,10 +187,6 @@ function linkModules (pkg, target, cb) { log.silly(pkg, "linkModules") log.verbose(target, "linkModules") var mod = pkg.modules - if (!mod) { - var lib = pkg.directories && pkg.directories.lib || pkg.lib - if (lib) return linkDefaultModules(pkg, lib, target, cb) - } // FIXME: remove in 0.3.0, and uncomment this functionality in // lib/utils/read-json.js @@ -211,50 +209,8 @@ function linkModules (pkg, target, cb) { }, cb) } -// shim ROOT/{name}-{version}/**/*.js to ROOT/.npm/{name}/{version}/{lib}/**/*.js -function linkDefaultModules(pkg, lib, target, cb) { - log.verbose("linking default modules", pkg._id) - var pkgDir = path.join(npm.dir, pkg.name, pkg.version, "package") - , libDir = path.join(pkgDir, lib) - // create a modules hash from the lib folder. - pkg.modules = {} - walk(libDir, function (er, filenames) { - if (er) return cb(er) - filenames.forEach(function (filename) { - filename = filename.replace(/\.(js|node)$/, '') - pkg.modules[filename.substr(libDir.length + 1)] = - filename.substr(pkgDir.length + 1) - }) - linkModules(pkg, target, cb) - }) -} -function walk (dir, cb) { - var filenames = [] - fs.stat(dir, function (er, stats) { - if (er) return cb(er) - if (!stats.isDirectory()) return cb(new Error( - "Not a dir, can't walk:"+dir)) - fs.readdir(dir, function (er, files) { - asyncMap(files, function (f, cb) { - f = path.join(dir, f) - fs.stat(f, function (er, s) { - // don't include missing files, but don't abort either - if (er) return cb() - if (s.isDirectory()) return walk(f, cb) - if (f.match(/\.(js|node)$/)) cb(null, f) - else cb() - }) - }, cb) - }) - }) -} - function linkBins (pkg, cb) { - if (!pkg.bin) { - var binDir = pkg.directories && pkg.directories.bin - if (binDir) return linkDefaultBins(pkg, binDir, cb) - else return cb() - } + if (!pkg.bin) return cb() log.verbose(pkg._id, "linkBins") var binroot = npm.config.get("binroot") , dep = path.join(npm.dir, pkg.name, pkg.version, "dependencies") @@ -271,20 +227,7 @@ function linkBins (pkg, cb) { shimTest(from, to, dep, cb) }, log.er(cb, "failed to link bins")) } -function linkDefaultBins (pkg, binDir, cb) { - log.verbose("linking default bins", pkg._id) - var pkgDir = path.join(npm.dir, pkg.name, pkg.version, "package") - binDir = path.join(pkgDir, binDir) - pkg.bin = {} - walk(binDir, function (er, filenames) { - if (er) return cb(er) - filenames.forEach(function (filename) { - pkg.bin[filename.substr(binDir.length + 1)] = - filename.substr(pkgDir.length + 1) - }) - linkBins(pkg, cb) - }) -} + function shimTest (from, to, dep, cb) { // if it needs a shim, then call writeShim -- cgit v1.2.3