diff options
author | isaacs <i@izs.me> | 2010-08-25 03:34:07 +0400 |
---|---|---|
committer | isaacs <i@izs.me> | 2010-08-25 16:21:51 +0400 |
commit | 7daa66b1948cc05818927186b7f4a32b7791b6f3 (patch) | |
tree | 7bd0e98cdc488444ab516fb39482c1ab5f41541e /lib | |
parent | ec1bee0889f6f2a956fbd6f31a6fadc606a5393d (diff) |
Replace all invalid chars in keys with _
Diffstat (limited to 'lib')
-rw-r--r-- | lib/utils/lifecycle.js | 11 |
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 } |