| Index: node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/configstore.js
|
| diff --git a/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/configstore.js b/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/configstore.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e43d5a9ad7ee44f2f6669ce64bc3afd2f6ac193b
|
| --- /dev/null
|
| +++ b/node_modules/vulcanize/node_modules/update-notifier/node_modules/configstore/configstore.js
|
| @@ -0,0 +1,100 @@
|
| +'use strict';
|
| +var path = require('path');
|
| +var os = require('os');
|
| +var fs = require('graceful-fs');
|
| +var osenv = require('osenv');
|
| +var assign = require('object-assign');
|
| +var mkdirp = require('mkdirp');
|
| +var yaml = require('js-yaml');
|
| +var uuid = require('uuid');
|
| +var getTempDir = os.tmpdir || os.tmpDir; //support node 0.8
|
| +
|
| +var user = (osenv.user() || uuid.v4()).replace(/\\/g, '');
|
| +var tmpDir = path.join(getTempDir(), user);
|
| +var configDir = process.env.XDG_CONFIG_HOME || path.join(osenv.home() || tmpDir, '.config');
|
| +var permissionError = 'You don\'t have access to this file.';
|
| +var defaultPathMode = parseInt('0700', 8);
|
| +var writeFileOptions = { mode: parseInt('0600', 8) };
|
| +
|
| +
|
| +if (/^v0\.8\./.test(process.version)) {
|
| + writeFileOptions = undefined;
|
| +}
|
| +
|
| +function Configstore(id, defaults) {
|
| + this.path = path.join(configDir, 'configstore', id + '.yml');
|
| + this.all = assign({}, defaults || {}, this.all || {});
|
| +}
|
| +
|
| +Configstore.prototype = Object.create(Object.prototype, {
|
| + all: {
|
| + get: function () {
|
| + try {
|
| + return yaml.safeLoad(fs.readFileSync(this.path, 'utf8'), {
|
| + filename: this.path,
|
| + schema: yaml.JSON_SCHEMA
|
| + });
|
| + } catch (err) {
|
| + // create dir if it doesn't exist
|
| + if (err.code === 'ENOENT') {
|
| + mkdirp.sync(path.dirname(this.path), defaultPathMode);
|
| + return {};
|
| + }
|
| +
|
| + // improve the message of permission errors
|
| + if (err.code === 'EACCES') {
|
| + err.message = err.message + '\n' + permissionError + '\n';
|
| + }
|
| +
|
| + // empty the file if it encounters invalid YAML
|
| + if (err.name === 'YAMLException') {
|
| + fs.writeFileSync(this.path, '', writeFileOptions);
|
| + return {};
|
| + }
|
| +
|
| + throw err;
|
| + }
|
| + },
|
| + set: function (val) {
|
| + try {
|
| + // make sure the folder exists, it could have been
|
| + // deleted meanwhile
|
| + mkdirp.sync(path.dirname(this.path), defaultPathMode);
|
| + fs.writeFileSync(this.path, yaml.safeDump(val, {
|
| + skipInvalid: true,
|
| + schema: yaml.JSON_SCHEMA
|
| + }), writeFileOptions);
|
| + } catch (err) {
|
| + // improve the message of permission errors
|
| + if (err.code === 'EACCES') {
|
| + err.message = err.message + '\n' + permissionError + '\n';
|
| + }
|
| +
|
| + throw err;
|
| + }
|
| + }
|
| + },
|
| + size: {
|
| + get: function () {
|
| + return Object.keys(this.all || {}).length;
|
| + }
|
| + }
|
| +});
|
| +
|
| +Configstore.prototype.get = function (key) {
|
| + return this.all[key];
|
| +};
|
| +
|
| +Configstore.prototype.set = function (key, val) {
|
| + var config = this.all;
|
| + config[key] = val;
|
| + this.all = config;
|
| +};
|
| +
|
| +Configstore.prototype.del = function (key) {
|
| + var config = this.all;
|
| + delete config[key];
|
| + this.all = config;
|
| +};
|
| +
|
| +module.exports = Configstore;
|
|
|