aboutsummaryrefslogtreecommitdiff
path: root/node_modules/homedir-polyfill
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
commitde98e0b232509d5f40c135d540a70e415272ff85 (patch)
treea79222a5b58484ab3b80d18efcaaa7ccc4769b33 /node_modules/homedir-polyfill
parente0c9d480a73fa629c1e4a47d3e721f1d2d345406 (diff)
downloadwallet-core-de98e0b232509d5f40c135d540a70e415272ff85.tar.xz
node_modules
Diffstat (limited to 'node_modules/homedir-polyfill')
-rw-r--r--node_modules/homedir-polyfill/LICENSE21
-rw-r--r--node_modules/homedir-polyfill/README.md75
-rw-r--r--node_modules/homedir-polyfill/index.js85
-rw-r--r--node_modules/homedir-polyfill/package.json61
4 files changed, 242 insertions, 0 deletions
diff --git a/node_modules/homedir-polyfill/LICENSE b/node_modules/homedir-polyfill/LICENSE
new file mode 100644
index 000000000..f92fdcf87
--- /dev/null
+++ b/node_modules/homedir-polyfill/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 Brian Woodward
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/homedir-polyfill/README.md b/node_modules/homedir-polyfill/README.md
new file mode 100644
index 000000000..39b4b3873
--- /dev/null
+++ b/node_modules/homedir-polyfill/README.md
@@ -0,0 +1,75 @@
+# homedir-polyfill [![NPM version](https://img.shields.io/npm/v/homedir-polyfill.svg?style=flat)](https://www.npmjs.com/package/homedir-polyfill) [![NPM downloads](https://img.shields.io/npm/dm/homedir-polyfill.svg?style=flat)](https://npmjs.org/package/homedir-polyfill) [![Linux Build Status](https://img.shields.io/travis/doowb/homedir-polyfill.svg?style=flat&label=Travis)](https://travis-ci.org/doowb/homedir-polyfill) [![Windows Build Status](https://img.shields.io/appveyor/ci/doowb/homedir-polyfill.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/doowb/homedir-polyfill)
+
+> Node.js os.homedir polyfill for older versions of node.js.
+
+## Install
+
+Install with [npm](https://www.npmjs.com/):
+
+```sh
+$ npm install --save homedir-polyfill
+```
+
+## Usage
+
+```js
+var homedir = require('homedir-polyfill');
+console.log(homedir());
+//=> /Users/doowb
+```
+
+## Reasoning
+
+This library is a polyfill for the [node.js os.homedir](https://nodejs.org/api/os.html#os_os_homedir) method found in modern versions of node.js.
+
+This implementation tries to follow the implementation found in `libuv` by finding the current user using the `process.geteuid()` method and the `/etc/passwd` file. This should usually work in a linux environment, but will also fallback to looking at user specific environment variables to build the user's home directory if neccessary.
+
+Since `/etc/passwd` is not available on windows platforms, this implementation will use environment variables to find the home directory.
+
+In modern versions of node.js, [os.homedir](https://nodejs.org/api/os.html#os_os_homedir) is used.
+
+## About
+
+### Related projects
+
+[parse-passwd](https://www.npmjs.com/package/parse-passwd): Parse a passwd file into a list of users. | [homepage](https://github.com/doowb/parse-passwd "Parse a passwd file into a list of users.")
+
+### Contributing
+
+Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
+
+Please read the [contributing guide](contributing.md) for avice on opening issues, pull requests, and coding standards.
+
+### Building docs
+
+_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
+
+To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
+
+```sh
+$ npm install -g verb verb-generate-readme && verb
+```
+
+### Running tests
+
+Install dev dependencies:
+
+```sh
+$ npm install -d && npm test
+```
+
+### Author
+
+**Brian Woodward**
+
+* [github/doowb](https://github.com/doowb)
+* [twitter/doowb](http://twitter.com/doowb)
+
+### License
+
+Copyright © 2016, [Brian Woodward](https://github.com/doowb).
+Released under the [MIT license](LICENSE).
+
+***
+
+_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on October 19, 2016._ \ No newline at end of file
diff --git a/node_modules/homedir-polyfill/index.js b/node_modules/homedir-polyfill/index.js
new file mode 100644
index 000000000..63a9c6451
--- /dev/null
+++ b/node_modules/homedir-polyfill/index.js
@@ -0,0 +1,85 @@
+'use strict';
+
+var os = require('os');
+var fs = require('fs');
+var parse = require('parse-passwd');
+
+function homedir() {
+ // The following logic is from looking at logic used in the different platform
+ // versions of the uv_os_homedir function found in https://github.com/libuv/libuv
+ // This is the function used in modern versions of node.js
+
+ if (process.platform === 'win32') {
+ // check the USERPROFILE first
+ if (process.env.USERPROFILE) {
+ return process.env.USERPROFILE;
+ }
+
+ // check HOMEDRIVE and HOMEPATH
+ if (process.env.HOMEDRIVE && process.env.HOMEPATH) {
+ return process.env.HOMEDRIVE + process.env.HOMEPATH;
+ }
+
+ // fallback to HOME
+ if (process.env.HOME) {
+ return process.env.HOME;
+ }
+
+ return null;
+ }
+
+ // check HOME environment variable first
+ if (process.env.HOME) {
+ return process.env.HOME;
+ }
+
+ // on linux platforms (including OSX) find the current user and get their homedir from the /etc/passwd file
+ var passwd = tryReadFileSync('/etc/passwd');
+ var home = find(parse(passwd), getuid());
+ if (home) {
+ return home;
+ }
+
+ // fallback to using user environment variables
+ var user = process.env.LOGNAME || process.env.USER || process.env.LNAME || process.env.USERNAME;
+
+ if (!user) {
+ return null;
+ }
+
+ if (process.platform === 'darwin') {
+ return '/Users/' + user;
+ }
+
+ return '/home/' + user;
+}
+
+function find(arr, uid) {
+ var len = arr.length;
+ for (var i = 0; i < len; i++) {
+ if (+arr[i].uid === uid) {
+ return arr[i].homedir;
+ }
+ }
+}
+
+function getuid() {
+ if (typeof process.geteuid === 'function') {
+ return process.geteuid();
+ }
+ return process.getuid();
+}
+
+function tryReadFileSync(fp) {
+ try {
+ return fs.readFileSync(fp, 'utf8');
+ } catch (err) {
+ return '';
+ }
+}
+
+if (typeof os.homedir === 'undefined') {
+ module.exports = homedir;
+} else {
+ module.exports = os.homedir;
+}
diff --git a/node_modules/homedir-polyfill/package.json b/node_modules/homedir-polyfill/package.json
new file mode 100644
index 000000000..21760d1ab
--- /dev/null
+++ b/node_modules/homedir-polyfill/package.json
@@ -0,0 +1,61 @@
+{
+ "name": "homedir-polyfill",
+ "description": "Node.js os.homedir polyfill for older versions of node.js.",
+ "version": "1.0.1",
+ "homepage": "https://github.com/doowb/homedir-polyfill",
+ "author": "Brian Woodward (https://github.com/doowb)",
+ "repository": "doowb/homedir-polyfill",
+ "bugs": {
+ "url": "https://github.com/doowb/homedir-polyfill/issues"
+ },
+ "license": "MIT",
+ "files": [
+ "index.js",
+ "LICENSE"
+ ],
+ "main": "index.js",
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "scripts": {
+ "test": "mocha"
+ },
+ "devDependencies": {
+ "gulp-format-md": "^0.1.11",
+ "mocha": "^3.1.2"
+ },
+ "keywords": [
+ "home",
+ "homedir",
+ "homedirectory",
+ "os",
+ "os-homedir",
+ "polyfill",
+ "userhome"
+ ],
+ "verb": {
+ "toc": false,
+ "layout": "default",
+ "tasks": [
+ "readme"
+ ],
+ "plugins": [
+ "gulp-format-md"
+ ],
+ "lint": {
+ "reflinks": true
+ },
+ "related": {
+ "list": [
+ "parse-passwd"
+ ]
+ },
+ "reflinks": [
+ "verb",
+ "verb-generate-readme"
+ ]
+ },
+ "dependencies": {
+ "parse-passwd": "^1.0.0"
+ }
+}