botserver/boot.mjs

58 lines
1.5 KiB
JavaScript
Raw Normal View History

2019-12-30 12:51:11 -03:00
#!/usr/bin/env node
2024-08-26 20:04:12 -03:00
process.stdout.write(`General Bots. BotServer@${pjson.version}, botlib@${pjson.dependencies.botlib}, node@${process.version.replace('v', '')}, ${process.platform} ${process.arch} `);
2024-09-07 18:13:36 -03:00
import fs from 'fs/promises';
import os from 'node:os';
2024-09-06 15:30:03 -03:00
import path from 'path';
import { exec } from 'child_process';
import pjson from './package.json' assert { type: 'json' };
2024-09-07 18:13:36 -03:00
import {GBUtil} from './dist/src/util.js'
2024-08-23 17:23:22 -03:00
// Displays version of Node JS being used at runtime and others attributes.
2024-09-15 14:41:56 -03:00
console.log(`\nLoading General Bots VM...`);
2024-03-13 09:04:30 -03:00
2023-02-24 19:26:09 -03:00
var __dirname = process.env.PWD || process.cwd();
2019-12-30 12:51:11 -03:00
try {
2024-09-07 18:13:36 -03:00
var run = async () => {
2024-09-07 18:13:36 -03:00
import('./dist/src/app.js').then(async (gb)=> {
await gb.GBServer.run()
2023-02-26 06:05:57 -03:00
});
};
2024-09-07 18:13:36 -03:00
var processDist = async () => {
if (!await GBUtil.exists('dist')) {
console.log(`\n`);
2024-09-15 14:41:56 -03:00
console.log(`General Bots: Compiling...`);
2024-09-07 18:13:36 -03:00
exec(path.join(__dirname, 'node_modules/.bin/tsc'), async (err, stdout, stderr) => {
if (err) {
console.error(err);
return;
}
2024-09-07 18:13:36 -03:00
await run();
});
} else {
2024-09-07 18:13:36 -03:00
await run();
}
};
// Installing modules if it has not been done yet.
2024-09-07 18:13:36 -03:00
if (!await GBUtil.exists('node_modules')) {
console.log(`\n`);
2024-09-15 14:41:56 -03:00
console.log(`General Bots: Installing modules for the first time, please wait...`);
2024-09-07 18:13:36 -03:00
exec('npm install', async (err, stdout, stderr) => {
if (err) {
console.error(err);
return;
}
2024-09-07 18:13:36 -03:00
await processDist();
});
} else {
2024-09-07 18:13:36 -03:00
await processDist();
}
2019-12-30 12:51:11 -03:00
} catch (e) {
console.log(e);
}