server-monitor-xp/dist/boot.js

188 lines
4.8 KiB
JavaScript
Raw Normal View History

2019-09-02 14:14:55 +08:00
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _fs = _interopRequireDefault(require("fs"));
var _axios = _interopRequireDefault(require("axios"));
var _package = _interopRequireDefault(require("../package.json"));
var _crypto = _interopRequireDefault(require("crypto"));
var _gather = _interopRequireDefault(require("./control/gather"));
var version = _package.default.version;
var request = _axios.default.create();
var apiURLs = {
apiURL: process.env.API_URL,
apiKEY: process.env.API_KEY
};
var AGENT_VERSION = process.env.AGENT_VERSION;
var AGENT_PORT = process.env.AGENT_PORT;
var isDev = process.env.NODE_ENV !== 'production'; // 系统配置
var rebootNodeJS =
/*#__PURE__*/
function () {
var _ref = (0, _asyncToGenerator2.default)(
/*#__PURE__*/
_regenerator.default.mark(function _callee() {
var _ref2, data;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
if (!isDev) {
_context.next = 4;
break;
}
console.log('当前是开发环境无法自动重启Node.js');
_context.next = 16;
break;
case 4:
_context.prev = 4;
_context.next = 7;
return request.get(`http://127.0.0.1:${AGENT_PORT}/system/cmd?action=restart`);
case 7:
_ref2 = _context.sent;
data = _ref2.data;
console.log('自动重启Node.js返回数据', data);
_context.next = 16;
break;
case 12:
_context.prev = 12;
_context.t0 = _context["catch"](4);
console.log(_context.t0);
console.log('自动重启Node.js失败');
case 16:
case "end":
return _context.stop();
}
}
}, _callee, null, [[4, 12]]);
}));
return function rebootNodeJS() {
return _ref.apply(this, arguments);
};
}();
var checkVersion =
/*#__PURE__*/
function () {
var _ref3 = (0, _asyncToGenerator2.default)(
/*#__PURE__*/
_regenerator.default.mark(function _callee2(version) {
var apiURL, _ref4, data;
return _regenerator.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
apiURL = 'https://tool.y-bi.top/check.php?version=' + version;
_context2.next = 3;
return request.get(apiURL);
case 3:
_ref4 = _context2.sent;
data = _ref4.data;
if (!(data.status === 1)) {
_context2.next = 10;
break;
}
// 有更新
console.log('发现新版系统正在重启Node.js...');
_context2.next = 9;
return rebootNodeJS();
case 9:
return _context2.abrupt("return", true);
case 10:
return _context2.abrupt("return", false);
case 11:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
return function checkVersion(_x) {
return _ref3.apply(this, arguments);
};
}();
var fileIsExists = function fileIsExists(path) {
try {
_fs.default.accessSync(path);
return true;
} catch (_) {
return false;
}
};
var checkAndInstallWhoami = function checkAndInstallWhoami() {
if (!fileIsExists('C:\\Windows\\system32\\whoami.exe') && !fileIsExists('C:\\Windows\\system32\\whoami.bat')) {
console.log('whoami 命令不存在,正在写入');
var batContent = `@echo off
echo %computername%\%username%
exit /B`;
_fs.default.writeFileSync('C:\\Windows\\system32\\whoami.bat', batContent);
}
};
var _default =
/*#__PURE__*/
(0, _asyncToGenerator2.default)(
/*#__PURE__*/
_regenerator.default.mark(function _callee3() {
return _regenerator.default.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
console.log('AGENT_VERSION:', AGENT_VERSION);
checkAndInstallWhoami();
setInterval(function () {
checkVersion(version || '0.0.1'); // sync
}, 120000);
(0, _gather.default)({
version: version || '0.0.1',
apiURLs,
isDev,
AGENT_PORT,
AGENT_VERSION
}); // sync
case 4:
case "end":
return _context3.stop();
}
}
}, _callee3);
}));
exports.default = _default;