From 20b4d5658f82aa8c36f819ce93d85b6a06ea82de Mon Sep 17 00:00:00 2001 From: Eli Doran Date: Mon, 12 Dec 2016 18:10:05 -0500 Subject: [PATCH] windows: use process.env.USERPROFILE for 'home' Credit: @elidoran Reviewed-By: @othiym23 PR-URL: https://github.com/npm/nopt/pull/77 --- lib/nopt.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/nopt.js b/lib/nopt.js index 2287ea9..d34e491 100644 --- a/lib/nopt.js +++ b/lib/nopt.js @@ -131,11 +131,16 @@ function validatePath (data, k, val) { if (val === null) return true val = String(val) - var homePattern = process.platform === 'win32' ? /^~(\/|\\)/ : /^~\// - if (val.match(homePattern) && process.env.HOME) { - val = path.resolve(process.env.HOME, val.substr(2)) + + var isWin = process.platform === 'win32' + , homePattern = isWin ? /^~(\/|\\)/ : /^~\// + , home = isWin ? process.env.USERPROFILE : process.env.HOME + + if (home && val.match(homePattern)) { + data[k] = path.resolve(home, val.substr(2)) + } else { + data[k] = path.resolve(val) } - data[k] = path.resolve(String(val)) return true }