0.1.1
This commit is contained in:
26
dist/app.js
vendored
Normal file
26
dist/app.js
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
|
||||
var _config = require("./config");
|
||||
|
||||
var _boot = _interopRequireDefault(require("./boot"));
|
||||
|
||||
var _http = _interopRequireDefault(require("http"));
|
||||
|
||||
var server = _http.default.createServer(function (req, res) {
|
||||
res.statusCode = 200;
|
||||
res.setHeader('Content-Type', 'application/json; charset=utf-8');
|
||||
res.end(JSON.stringify({
|
||||
status: 1
|
||||
}));
|
||||
});
|
||||
|
||||
(0, _boot.default)().then(function (r) {
|
||||
// Start boot
|
||||
server.listen(_config.SERVER.port, _config.SERVER.host, function () {
|
||||
console.log(`Server running at http://${_config.SERVER.host}:${_config.SERVER.port}/`);
|
||||
});
|
||||
}).catch(function (err) {
|
||||
console.log(err);
|
||||
});
|
188
dist/boot.js
vendored
Normal file
188
dist/boot.js
vendored
Normal file
@ -0,0 +1,188 @@
|
||||
"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;
|
24
dist/config.js
vendored
Normal file
24
dist/config.js
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.SERVER = exports.SYSTEM = void 0;
|
||||
|
||||
var pack = require('../package');
|
||||
|
||||
var isDev = process.env.NODE_ENV !== 'production'; // 系统配置
|
||||
|
||||
var SYSTEM = {
|
||||
version: pack.version,
|
||||
sessionKey: process.env.JWT_SECRET || '123',
|
||||
// 生产环境务必随机设置一个值
|
||||
scheme: [isDev ? 'http' : 'https']
|
||||
};
|
||||
exports.SYSTEM = SYSTEM;
|
||||
var SERVER = {
|
||||
port: isDev ? process.env.PORT || '65522' : process.env.PORT || '65522',
|
||||
// API服务器监听的端口号
|
||||
host: '0.0.0.0'
|
||||
};
|
||||
exports.SERVER = SERVER;
|
91
dist/control/gather.js
vendored
Normal file
91
dist/control/gather.js
vendored
Normal file
@ -0,0 +1,91 @@
|
||||
"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 _os = _interopRequireDefault(require("os"));
|
||||
|
||||
var _axios = _interopRequireDefault(require("axios"));
|
||||
|
||||
var _child_process = require("child_process");
|
||||
|
||||
var request = _axios.default.create();
|
||||
|
||||
var _default =
|
||||
/*#__PURE__*/
|
||||
function () {
|
||||
var _ref = (0, _asyncToGenerator2.default)(
|
||||
/*#__PURE__*/
|
||||
_regenerator.default.mark(function _callee2(conf) {
|
||||
var gather;
|
||||
return _regenerator.default.wrap(function _callee2$(_context2) {
|
||||
while (1) {
|
||||
switch (_context2.prev = _context2.next) {
|
||||
case 0:
|
||||
gather = function gather(conf) {
|
||||
setTimeout(
|
||||
/*#__PURE__*/
|
||||
(0, _asyncToGenerator2.default)(
|
||||
/*#__PURE__*/
|
||||
_regenerator.default.mark(function _callee() {
|
||||
var who, version, apiURLs, AGENT_VERSION, _ref3, data;
|
||||
|
||||
return _regenerator.default.wrap(function _callee$(_context) {
|
||||
while (1) {
|
||||
switch (_context.prev = _context.next) {
|
||||
case 0:
|
||||
who = (0, _child_process.execSync)('whoami');
|
||||
version = conf.version, apiURLs = conf.apiURLs, AGENT_VERSION = conf.AGENT_VERSION;
|
||||
_context.next = 4;
|
||||
return request.put(apiURLs.apiURL + 'gather', {
|
||||
version,
|
||||
AGENT_VERSION,
|
||||
user: who.toString('utf8').trim('\r\n'),
|
||||
arch: _os.default.arch(),
|
||||
type: _os.default.type(),
|
||||
platform: _os.default.platform()
|
||||
});
|
||||
|
||||
case 4:
|
||||
_ref3 = _context.sent;
|
||||
data = _ref3.data;
|
||||
|
||||
if (data.status === 1) {
|
||||
console.log('发现监控系统地址');
|
||||
}
|
||||
|
||||
gather(conf);
|
||||
|
||||
case 8:
|
||||
case "end":
|
||||
return _context.stop();
|
||||
}
|
||||
}
|
||||
}, _callee);
|
||||
})), 20000);
|
||||
};
|
||||
|
||||
gather(conf);
|
||||
|
||||
case 2:
|
||||
case "end":
|
||||
return _context2.stop();
|
||||
}
|
||||
}
|
||||
}, _callee2);
|
||||
}));
|
||||
|
||||
return function (_x) {
|
||||
return _ref.apply(this, arguments);
|
||||
};
|
||||
}();
|
||||
|
||||
exports.default = _default;
|
5
dist/dev.js
vendored
Normal file
5
dist/dev.js
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
require('@babel/register');
|
||||
|
||||
require('./app');
|
44
dist/service/home.js
vendored
Normal file
44
dist/service/home.js
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
"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 _default = {
|
||||
method: 'GET',
|
||||
path: '/',
|
||||
config: {
|
||||
auth: false
|
||||
},
|
||||
|
||||
handler() {
|
||||
return (0, _asyncToGenerator2.default)(
|
||||
/*#__PURE__*/
|
||||
_regenerator.default.mark(function _callee() {
|
||||
return _regenerator.default.wrap(function _callee$(_context) {
|
||||
while (1) {
|
||||
switch (_context.prev = _context.next) {
|
||||
case 0:
|
||||
return _context.abrupt("return", {
|
||||
status: 1,
|
||||
massage: 'Please consult the API documentation.'
|
||||
});
|
||||
|
||||
case 1:
|
||||
case "end":
|
||||
return _context.stop();
|
||||
}
|
||||
}
|
||||
}, _callee);
|
||||
}))();
|
||||
}
|
||||
|
||||
};
|
||||
exports.default = _default;
|
32
dist/service/index.js
vendored
Normal file
32
dist/service/index.js
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
|
||||
var _fs = _interopRequireDefault(require("fs"));
|
||||
|
||||
var _path = _interopRequireDefault(require("path"));
|
||||
|
||||
var modules = [];
|
||||
|
||||
var files = _fs.default.readdirSync(__dirname).filter(function (file) {
|
||||
return file.match(/\.(json|js)$/);
|
||||
});
|
||||
|
||||
files.forEach(function (key) {
|
||||
if (key === 'index.js') return; // const content = require(path.join(__dirname, key)).default
|
||||
|
||||
var content = require(_path.default.join(__dirname, key)).default;
|
||||
|
||||
if (Array.isArray(content)) {
|
||||
modules.push(...content);
|
||||
} else {
|
||||
modules.push(content);
|
||||
}
|
||||
});
|
||||
var _default = modules;
|
||||
exports.default = _default;
|
48
dist/service/stats.js
vendored
Normal file
48
dist/service/stats.js
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
"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 _Proc = _interopRequireDefault(require("../lib/Proc"));
|
||||
|
||||
var _default = {
|
||||
method: 'GET',
|
||||
path: '/stats',
|
||||
config: {
|
||||
auth: false
|
||||
},
|
||||
|
||||
handler() {
|
||||
return (0, _asyncToGenerator2.default)(
|
||||
/*#__PURE__*/
|
||||
_regenerator.default.mark(function _callee() {
|
||||
var proc;
|
||||
return _regenerator.default.wrap(function _callee$(_context) {
|
||||
while (1) {
|
||||
switch (_context.prev = _context.next) {
|
||||
case 0:
|
||||
proc = new _Proc.default();
|
||||
return _context.abrupt("return", {
|
||||
status: 1,
|
||||
result: proc.info
|
||||
});
|
||||
|
||||
case 2:
|
||||
case "end":
|
||||
return _context.stop();
|
||||
}
|
||||
}
|
||||
}, _callee);
|
||||
}))();
|
||||
}
|
||||
|
||||
};
|
||||
exports.default = _default;
|
59
dist/service/status.js
vendored
Normal file
59
dist/service/status.js
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
"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 _os = _interopRequireDefault(require("os"));
|
||||
|
||||
var _child_process = require("child_process");
|
||||
|
||||
var _default = {
|
||||
method: 'GET',
|
||||
path: '/status',
|
||||
config: {
|
||||
auth: false
|
||||
},
|
||||
|
||||
handler() {
|
||||
return (0, _asyncToGenerator2.default)(
|
||||
/*#__PURE__*/
|
||||
_regenerator.default.mark(function _callee() {
|
||||
var who;
|
||||
return _regenerator.default.wrap(function _callee$(_context) {
|
||||
while (1) {
|
||||
switch (_context.prev = _context.next) {
|
||||
case 0:
|
||||
who = (0, _child_process.execSync)('whoami');
|
||||
return _context.abrupt("return", {
|
||||
status: 1,
|
||||
msg: 'running',
|
||||
result: {
|
||||
user: who.toString('utf8').trim('\r\n'),
|
||||
arch: _os.default.arch(),
|
||||
type: _os.default.type(),
|
||||
platform: _os.default.platform(),
|
||||
totalmem: _os.default.totalmem(),
|
||||
freemem: _os.default.freemem(),
|
||||
cups: _os.default.cpus()
|
||||
}
|
||||
});
|
||||
|
||||
case 2:
|
||||
case "end":
|
||||
return _context.stop();
|
||||
}
|
||||
}
|
||||
}, _callee);
|
||||
}))();
|
||||
}
|
||||
|
||||
};
|
||||
exports.default = _default;
|
Reference in New Issue
Block a user