- Клиентская часть Vue 3 + Vite - Серверная часть Node.js + WebSocket - Система авторизации и смен - Управление игровыми портами - Поддержка тем (светлая/темная) - Адаптивный дизайн 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
72 lines
2.0 KiB
JavaScript
72 lines
2.0 KiB
JavaScript
// ОБНОВЛЕНИЕ!!!
|
|
|
|
const fs = require('fs');
|
|
|
|
const util = require('util');
|
|
const runCommand = util.promisify(require('child_process').exec);
|
|
|
|
|
|
let TEMP_DIR="temp_package";
|
|
let PACKAGE_NAME="@pult/pult-beta";
|
|
let VER=1,VERNPM=2;
|
|
|
|
let update= async () => {
|
|
|
|
|
|
if ( fs.existsSync(TEMP_DIR)) { // Если существует папка TEMP_DIR >>>
|
|
console.log('Предыдущее обновление завершено не коректно');
|
|
if ( fs.existsSync(TEMP_DIR+"/ok")) { // Если существует файл ok
|
|
console.log('было скачено');
|
|
await runCommand(`cd ${TEMP_DIR}
|
|
tar -xzf pult*.tgz --strip-components=1 -C ..
|
|
cd ..
|
|
rm -rf ${TEMP_DIR}
|
|
npm update
|
|
`);
|
|
process.exit();
|
|
} else {
|
|
console.log('не скачено');
|
|
await runCommand(`rm -rf ${TEMP_DIR}`);
|
|
}
|
|
}
|
|
|
|
|
|
try {
|
|
let dan= JSON.parse(fs.readFileSync('package.json', "utf8"));
|
|
PACKAGE_NAME=dan.name; VER=dan.version;
|
|
} catch (error) {}
|
|
VERNPM=(await runCommand("npm view "+PACKAGE_NAME+" version").catch(e=>{process.exit()})).stdout.slice(0, -1);
|
|
|
|
|
|
console.log(PACKAGE_NAME, "["+VER+"]", "["+VERNPM+"]");
|
|
if (VER==VERNPM) {
|
|
console.log('Обновление не требуется');
|
|
process.exit();
|
|
}
|
|
|
|
await runCommand(`mkdir ${TEMP_DIR}
|
|
cd ${TEMP_DIR}
|
|
npm pack ${PACKAGE_NAME}
|
|
touch ok
|
|
tar -xzf pult*.tgz --strip-components=1 -C ..
|
|
cd ..
|
|
rm -rf ${TEMP_DIR}
|
|
npm update
|
|
`);
|
|
|
|
|
|
|
|
|
|
console.log('Обновление завершено на версию '+VERNPM);
|
|
process.exit();
|
|
}
|
|
|
|
update();
|
|
|
|
|
|
setTimeout(()=>{ process.exit(); }, 300000); // 5 минут таймаут
|
|
|
|
process.on("SIGINT", () => { // прослушиваем прерывание работы программы (ctrl-c)
|
|
process.exit();
|
|
});
|