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 03:34:07 +0400
committerisaacs <i@izs.me>2010-08-25 16:21:51 +0400
commit7daa66b1948cc05818927186b7f4a32b7791b6f3 (patch)
tree7bd0e98cdc488444ab516fb39482c1ab5f41541e /lib
parentec1bee0889f6f2a956fbd6f31a6fadc606a5393d (diff)
Replace all invalid chars in keys with _
Diffstat (limited to 'lib')
-rw-r--r--lib/utils/lifecycle.js11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/utils/lifecycle.js b/lib/utils/lifecycle.js
index 91d46e00b..fbecc0b53 100644
--- a/lib/utils/lifecycle.js
+++ b/lib/utils/lifecycle.js
@@ -31,6 +31,7 @@ function lifecycle (pkg, stage, cb) {
var env = makeEnv(pkg)
env.npm_lifecycle_event = stage
env.npm_lifecycle_script = pkg.scripts[stage]
+ log.silly(env, "lifecycle env")
exec("sh", ["-c", env.npm_lifecycle_script], env, function (er) {
if (er && !npm.ROLLBACK) {
log("Failed to exec "+stage+" script", pkg._id)
@@ -65,18 +66,20 @@ function makeEnv (data, prefix, env) {
}
for (var i in data) if (i.charAt(0) !== "_") {
+ var envKey = (prefix+i).replace(/[^a-zA-Z0-9_]/g, '_')
if (data[i] && typeof(data[i]) === "object") {
- env[prefix+i] = JSON.stringify(data[i])
- makeEnv(data[i], prefix+i+"_", env)
+ env[envKey] = JSON.stringify(data[i])
+ makeEnv(data[i], envKey+"_", env)
} else {
- env[prefix+i] = String(data[i])
+ env[envKey] = String(data[i])
}
}
if (prefix !== "npm_package_") return env
prefix = "npm_config_"
var conf = npm.config.get()
for (var i in conf) if (i.charAt(0) !== "_") {
- env[prefix+i] = String(conf[i])
+ var envKey = (prefix+i).replace(/[^a-zA-Z0-9_]/g, '_')
+ env[envKey] = String(conf[i])
}
return env
}