telebit.js/lib/cli-common.js

81 lines
2.3 KiB
JavaScript
Raw Normal View History

2018-06-11 20:52:01 +00:00
'use strict';
var common = module.exports;
var path = require('path');
var mkdirp = require('mkdirp');
var os = require('os');
var homedir = os.homedir();
2018-06-12 10:36:37 +00:00
var localshare = '.local/share/telebit';
2018-06-11 20:52:01 +00:00
var localconf = '.config/telebit';
2018-06-14 07:26:32 +00:00
common.pipename = function (config, newApi) {
var _ipc = {
path: (config.sock || common.DEFAULT_SOCK_NAME)
, comment: (/^win/i.test(os.platform()) ? 'windows pipe' : 'unix socket')
, type: (/^win/i.test(os.platform()) ? 'pipe' : 'socket')
};
if ('pipe' === _ipc.type) {
2018-06-14 08:39:34 +00:00
_ipc.path = '\\\\?\\pipe' + _ipc.path.replace(/\//, '\\');
2018-06-11 20:52:01 +00:00
}
2018-06-14 07:26:32 +00:00
if (newApi) {
return _ipc;
}
return _ipc.path;
2018-06-11 20:52:01 +00:00
};
2018-06-14 07:26:32 +00:00
common.DEFAULT_SOCK_NAME = path.join(homedir, localshare, 'var', 'run', 'telebit.sock');
2018-06-11 20:52:01 +00:00
2018-06-16 01:11:02 +00:00
common.parseUrl = function (hostname) {
var url = require('url');
var location = url.parse(hostname);
if (!location.protocol || /\./.test(location.protocol)) {
hostname = 'https://' + hostname;
location = url.parse(hostname);
}
hostname = location.hostname + (location.port ? ':' + location.port : '');
hostname = location.protocol.replace(/https?/, 'https') + '//' + hostname + location.pathname;
return hostname;
};
2018-06-20 09:07:35 +00:00
common.parseHostname = function (hostname) {
var url = require('url');
var location = url.parse(hostname);
if (!location.protocol || /\./.test(location.protocol)) {
hostname = 'https://' + hostname;
location = url.parse(hostname);
}
//hostname = location.hostname + (location.port ? ':' + location.port : '');
//hostname = location.protocol.replace(/https?/, 'https') + '//' + hostname + location.pathname;
return location.hostname;
};
2018-06-16 01:11:02 +00:00
common.apiDirectory = '_apis/telebit.cloud/index.json';
2018-06-20 09:07:35 +00:00
function leftpad(i, n, c) {
2018-06-21 06:10:49 +00:00
i = i.toString();
while (i.length < (n || 4)) {
2018-06-20 09:07:35 +00:00
i = (c || '0') + i;
}
return i;
}
common.otp = function getOtp() {
return leftpad(Math.round(Math.random() * 9999), 4, '0');
};
2018-06-11 20:52:01 +00:00
try {
2018-06-12 10:36:37 +00:00
mkdirp.sync(path.join(__dirname, '..', 'var', 'log'));
mkdirp.sync(path.join(__dirname, '..', 'var', 'run'));
mkdirp.sync(path.join(__dirname, '..', 'etc'));
} catch(e) {
console.error(e);
}
try {
mkdirp.sync(path.join(homedir, localshare, 'var', 'log'));
mkdirp.sync(path.join(homedir, localshare, 'var', 'run'));
//mkdirp.sync(path.join(homedir, localshare, 'etc'));
2018-06-11 20:52:01 +00:00
mkdirp.sync(path.join(homedir, localconf));
} catch(e) {
console.error(e);
}