| Index: node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/osenv/osenv.js
 | 
| diff --git a/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/osenv/osenv.js b/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/osenv/osenv.js
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..7836fafcc1a6611a516fc460dfc2950f0f1608a9
 | 
| --- /dev/null
 | 
| +++ b/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/node_modules/osenv/osenv.js
 | 
| @@ -0,0 +1,73 @@
 | 
| +var isWindows = process.platform === 'win32'
 | 
| +var path = require('path')
 | 
| +var exec = require('child_process').exec
 | 
| +var os = require('os')
 | 
| +
 | 
| +// looking up envs is a bit costly.
 | 
| +// Also, sometimes we want to have a fallback
 | 
| +// Pass in a callback to wait for the fallback on failures
 | 
| +// After the first lookup, always returns the same thing.
 | 
| +function memo (key, lookup, fallback) {
 | 
| +  var fell = false
 | 
| +  var falling = false
 | 
| +  exports[key] = function (cb) {
 | 
| +    var val = lookup()
 | 
| +    if (!val && !fell && !falling && fallback) {
 | 
| +      fell = true
 | 
| +      falling = true
 | 
| +      exec(fallback, function (er, output, stderr) {
 | 
| +        falling = false
 | 
| +        if (er) return // oh well, we tried
 | 
| +        val = output.trim()
 | 
| +      })
 | 
| +    }
 | 
| +    exports[key] = function (cb) {
 | 
| +      if (cb) process.nextTick(cb.bind(null, null, val))
 | 
| +      return val
 | 
| +    }
 | 
| +    if (cb && !falling) process.nextTick(cb.bind(null, null, val))
 | 
| +    return val
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +memo('user', function () {
 | 
| +  return ( isWindows
 | 
| +         ? process.env.USERDOMAIN + '\\' + process.env.USERNAME
 | 
| +         : process.env.USER
 | 
| +         )
 | 
| +}, 'whoami')
 | 
| +
 | 
| +memo('prompt', function () {
 | 
| +  return isWindows ? process.env.PROMPT : process.env.PS1
 | 
| +})
 | 
| +
 | 
| +memo('hostname', function () {
 | 
| +  return isWindows ? process.env.COMPUTERNAME : process.env.HOSTNAME
 | 
| +}, 'hostname')
 | 
| +
 | 
| +memo('tmpdir', function () {
 | 
| +  return os.tmpDir()
 | 
| +})
 | 
| +
 | 
| +memo('home', function () {
 | 
| +  return ( isWindows ? process.env.USERPROFILE
 | 
| +         : process.env.HOME
 | 
| +         )
 | 
| +})
 | 
| +
 | 
| +memo('path', function () {
 | 
| +  return (process.env.PATH ||
 | 
| +          process.env.Path ||
 | 
| +          process.env.path).split(isWindows ? ';' : ':')
 | 
| +})
 | 
| +
 | 
| +memo('editor', function () {
 | 
| +  return process.env.EDITOR ||
 | 
| +         process.env.VISUAL ||
 | 
| +         (isWindows ? 'notepad.exe' : 'vi')
 | 
| +})
 | 
| +
 | 
| +memo('shell', function () {
 | 
| +  return isWindows ? process.env.ComSpec || 'cmd'
 | 
| +         : process.env.SHELL || 'bash'
 | 
| +})
 | 
| 
 |