util: start using path module. remove some functions.
This commit is contained in:
parent
8358fa59c6
commit
b26b82ab97
@ -9,6 +9,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
|
var path = require('path');
|
||||||
var EventEmitter = require('events').EventEmitter;
|
var EventEmitter = require('events').EventEmitter;
|
||||||
var util = require('../utils/util');
|
var util = require('../utils/util');
|
||||||
var co = require('../utils/co');
|
var co = require('../utils/co');
|
||||||
@ -691,7 +692,7 @@ AuthDB.prototype.readKnown = async function readKnown() {
|
|||||||
if (!this.prefix)
|
if (!this.prefix)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
file = this.prefix + '/known-peers';
|
file = path.join(this.prefix, 'known-peers');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
text = await fs.readFile(file, 'utf8');
|
text = await fs.readFile(file, 'utf8');
|
||||||
@ -769,7 +770,7 @@ AuthDB.prototype.readAuth = async function readAuth() {
|
|||||||
if (!this.prefix)
|
if (!this.prefix)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
file = this.prefix + '/authorized-peers';
|
file = path.join(this.prefix, 'authorized-peers');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
text = await fs.readFile(file, 'utf8');
|
text = await fs.readFile(file, 'utf8');
|
||||||
|
|||||||
@ -7,6 +7,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
|
var path = require('path');
|
||||||
var util = require('../utils/util');
|
var util = require('../utils/util');
|
||||||
var IP = require('../utils/ip');
|
var IP = require('../utils/ip');
|
||||||
var co = require('../utils/co');
|
var co = require('../utils/co');
|
||||||
@ -1634,7 +1635,7 @@ HostListOptions.prototype.fromOptions = function fromOptions(options) {
|
|||||||
if (options.prefix != null) {
|
if (options.prefix != null) {
|
||||||
assert(typeof options.prefix === 'string');
|
assert(typeof options.prefix === 'string');
|
||||||
this.prefix = options.prefix;
|
this.prefix = options.prefix;
|
||||||
this.filename = this.prefix + '/hosts.json';
|
this.filename = path.join(this.prefix, 'hosts.json');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.filename != null) {
|
if (options.filename != null) {
|
||||||
|
|||||||
@ -7,9 +7,10 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
|
var path = require('path');
|
||||||
|
var os = require('os');
|
||||||
var fs = require('../utils/fs');
|
var fs = require('../utils/fs');
|
||||||
var util = require('../utils/util');
|
var util = require('../utils/util');
|
||||||
var os = require('os');
|
|
||||||
var HOME = os.homedir();
|
var HOME = os.homedir();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -24,10 +25,11 @@ function Config(module) {
|
|||||||
return new Config(module);
|
return new Config(module);
|
||||||
|
|
||||||
assert(typeof module === 'string');
|
assert(typeof module === 'string');
|
||||||
|
assert(module.length > 0);
|
||||||
|
|
||||||
this.module = module;
|
this.module = module;
|
||||||
this.network = 'main';
|
this.network = 'main';
|
||||||
this.prefix = HOME + '/.' + module;
|
this.prefix = path.join(HOME, '.' + module);
|
||||||
|
|
||||||
this.options = Object.create(null);
|
this.options = Object.create(null);
|
||||||
this.data = Object.create(null);
|
this.data = Object.create(null);
|
||||||
@ -522,7 +524,7 @@ Config.prototype.func = function func(key, fallback) {
|
|||||||
* @returns {String|null}
|
* @returns {String|null}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Config.prototype.path = function path(key, fallback) {
|
Config.prototype.path = function _path(key, fallback) {
|
||||||
var value = this.str(key);
|
var value = this.str(key);
|
||||||
|
|
||||||
if (fallback === undefined)
|
if (fallback === undefined)
|
||||||
@ -533,16 +535,16 @@ Config.prototype.path = function path(key, fallback) {
|
|||||||
|
|
||||||
switch (value[0]) {
|
switch (value[0]) {
|
||||||
case '~': // home dir
|
case '~': // home dir
|
||||||
value = HOME + value.substring(1);
|
value = path.join(HOME, value.substring(1));
|
||||||
break;
|
break;
|
||||||
case '@': // prefix
|
case '@': // prefix
|
||||||
value = this.prefix + value.substring(1);
|
value = path.join(this.prefix, value.substring(1));
|
||||||
break;
|
break;
|
||||||
default: // cwd
|
default: // cwd
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return util.normalize(value);
|
return path.normalize(value);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -593,20 +595,20 @@ Config.prototype.getPrefix = function getPrefix() {
|
|||||||
|
|
||||||
if (prefix) {
|
if (prefix) {
|
||||||
if (prefix[0] === '~')
|
if (prefix[0] === '~')
|
||||||
prefix = HOME + prefix.substring(1);
|
prefix = path.join(HOME, prefix.substring(1));
|
||||||
return prefix;
|
return prefix;
|
||||||
}
|
}
|
||||||
|
|
||||||
prefix = HOME + '/.' + this.module;
|
prefix = path.join(HOME, '.' + this.module);
|
||||||
network = this.str('network');
|
network = this.str('network');
|
||||||
|
|
||||||
if (network) {
|
if (network) {
|
||||||
assert(isAlpha(network), 'Bad network.');
|
assert(isAlpha(network), 'Bad network.');
|
||||||
if (network !== 'main')
|
if (network !== 'main')
|
||||||
prefix += '/' + network;
|
prefix = path.join(prefix, network);
|
||||||
}
|
}
|
||||||
|
|
||||||
return util.normalize(prefix);
|
return path.normalize(prefix);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -617,12 +619,12 @@ Config.prototype.getPrefix = function getPrefix() {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
Config.prototype.getFile = function getFile(file) {
|
Config.prototype.getFile = function getFile(file) {
|
||||||
var path = this.str('config');
|
var name = this.str('config');
|
||||||
|
|
||||||
if (path)
|
if (name)
|
||||||
return path;
|
return name;
|
||||||
|
|
||||||
return this.prefix + '/' + file;
|
return path.join(this.prefix, file);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -644,7 +646,7 @@ Config.prototype.ensure = function ensure() {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
Config.prototype.location = function location(file) {
|
Config.prototype.location = function location(file) {
|
||||||
return this.prefix + '/' + file;
|
return path.join(this.prefix, file);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -12,6 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
var BN = require('bn.js');
|
var BN = require('bn.js');
|
||||||
|
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;
|
||||||
var encoding = exports;
|
var encoding = exports;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -352,7 +353,7 @@ encoding._write64 = function _write64(dst, num, off, be) {
|
|||||||
num -= 1;
|
num -= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
enforce(num <= Number.MAX_SAFE_INTEGER, off, 'Number exceeds 2^53-1');
|
enforce(num <= MAX_SAFE_INTEGER, off, 'Number exceeds 2^53-1');
|
||||||
|
|
||||||
lo = num % 0x100000000;
|
lo = num % 0x100000000;
|
||||||
hi = (num - lo) / 0x100000000;
|
hi = (num - lo) / 0x100000000;
|
||||||
|
|||||||
@ -7,6 +7,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
var path = require('path');
|
||||||
var co = require('./co');
|
var co = require('./co');
|
||||||
|
|
||||||
exports.access = co.promisify(fs.access);
|
exports.access = co.promisify(fs.access);
|
||||||
@ -87,11 +88,11 @@ exports.writeFileSync = fs.writeFileSync;
|
|||||||
exports.mkdirpSync = function mkdirpSync(dir, mode) {
|
exports.mkdirpSync = function mkdirpSync(dir, mode) {
|
||||||
var data = getParts(dir);
|
var data = getParts(dir);
|
||||||
var parts = data.parts;
|
var parts = data.parts;
|
||||||
var path = data.path;
|
var path = data.root;
|
||||||
var i, stat;
|
var i, stat;
|
||||||
|
|
||||||
if (mode == null)
|
if (mode == null)
|
||||||
mode = 488; // 0755
|
mode = 0o750;
|
||||||
|
|
||||||
for (i = 0; i < parts.length; i++) {
|
for (i = 0; i < parts.length; i++) {
|
||||||
path += parts[i];
|
path += parts[i];
|
||||||
@ -114,11 +115,11 @@ exports.mkdirpSync = function mkdirpSync(dir, mode) {
|
|||||||
exports.mkdirp = async function mkdirp(dir, mode) {
|
exports.mkdirp = async function mkdirp(dir, mode) {
|
||||||
var data = getParts(dir);
|
var data = getParts(dir);
|
||||||
var parts = data.parts;
|
var parts = data.parts;
|
||||||
var path = data.path;
|
var path = data.root;
|
||||||
var i, stat;
|
var i, stat;
|
||||||
|
|
||||||
if (mode == null)
|
if (mode == null)
|
||||||
mode = 488; // 0755
|
mode = 0o750;
|
||||||
|
|
||||||
for (i = 0; i < parts.length; i++) {
|
for (i = 0; i < parts.length; i++) {
|
||||||
path += parts[i];
|
path += parts[i];
|
||||||
@ -139,28 +140,28 @@ exports.mkdirp = async function mkdirp(dir, mode) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function getParts(path) {
|
function getParts(path) {
|
||||||
|
var root = '';
|
||||||
var parts;
|
var parts;
|
||||||
|
|
||||||
path = path.replace(/\\/g, '/');
|
path = path.replace(/\\/g, '/');
|
||||||
path = path.replace(/(^|\/)\.\//, '$1');
|
path = path.replace(/(^|\/)\.\//, '$1');
|
||||||
path = path.replace(/\/+\.?$/, '');
|
path = path.replace(/\/+\.?$/, '');
|
||||||
parts = path.split(/\/+/);
|
parts = path.split(/\/+/);
|
||||||
path = '';
|
|
||||||
|
|
||||||
if (process.platform === 'win32') {
|
if (process.platform === 'win32') {
|
||||||
if (parts[0].indexOf(':') !== -1)
|
if (parts[0].indexOf(':') !== -1)
|
||||||
path = parts.shift() + '/';
|
root = parts.shift() + '/';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parts.length > 0) {
|
if (parts.length > 0) {
|
||||||
if (parts[0].length === 0) {
|
if (parts[0].length === 0) {
|
||||||
parts.shift();
|
parts.shift();
|
||||||
path = '/';
|
root = '/';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
path: path,
|
root: root,
|
||||||
parts: parts
|
parts: parts
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -792,26 +792,6 @@ util.binaryRemove = function binaryRemove(items, item, compare) {
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* Normalize a path.
|
|
||||||
* @param {String} path
|
|
||||||
* @param {Boolean?} dirname
|
|
||||||
*/
|
|
||||||
|
|
||||||
util.normalize = function normalize(path, dirname) {
|
|
||||||
var parts;
|
|
||||||
|
|
||||||
path = path.replace(/\\/g, '/');
|
|
||||||
path = path.replace(/(^|\/)\.\//, '$1');
|
|
||||||
path = path.replace(/\/+\.?$/, '');
|
|
||||||
parts = path.split(/\/+/);
|
|
||||||
|
|
||||||
if (dirname)
|
|
||||||
parts.pop();
|
|
||||||
|
|
||||||
return parts.join('/');
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ensure hidden-class mode for object.
|
* Ensure hidden-class mode for object.
|
||||||
* @param {Object} obj
|
* @param {Object} obj
|
||||||
@ -850,24 +830,6 @@ if (!''.startsWith) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Promisify a function.
|
|
||||||
* @param {Function} func
|
|
||||||
* @returns {Function}
|
|
||||||
*/
|
|
||||||
|
|
||||||
util.promisify = function promisify(func) {
|
|
||||||
return function() {
|
|
||||||
var result;
|
|
||||||
try {
|
|
||||||
result = func.apply(this, arguments);
|
|
||||||
} catch (e) {
|
|
||||||
return Promise.reject(e);
|
|
||||||
}
|
|
||||||
return Promise.resolve(result);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get memory usage info.
|
* Get memory usage info.
|
||||||
* @returns {Object}
|
* @returns {Object}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user