Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2010-08-25 01:49:25 +0400
committerisaacs <i@izs.me>2010-08-25 16:21:50 +0400
commita68a7056e62632e24b389eab68b7c88c302e8bb6 (patch)
tree923b63c6020ee87417b86b2b409411f07ac0e945 /lib
parenta283438c61676eebd993dd99d7049f69c386e6de (diff)
Use the abstracted-out package default loader thing
Diffstat (limited to 'lib')
-rw-r--r--lib/build.js67
1 files changed, 5 insertions, 62 deletions
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