CH-J Server Managerуправление на сървъри над SSH
Меню
Публикуван източник

CH-J Server Manager

Преглед на директории и файлове за конкретна версия на приложението.

Изтегляне на източник ZIP
CH-J / Server Manager 193 Файлове
core-20261011T184039Z-4148710795d0 Добавено: Дата, която не е регистрирана · Построена:
Файлове
atomicFile.js Добавено: Дата, която не е регистрирана 1,2 KB · 36 линии
Изтегляне на файл
1"use strict";
3const crypto = require("node:crypto");
4const fs = require("node:fs");
5const path = require("node:path");
7function atomicWriteFile(filePath, content, options = {}) {
8 fs.mkdirSync(path.dirname(filePath), { recursive: true });
9 const tempPath = `${filePath}.tmp-${crypto.randomBytes(6).toString("hex")}`;
10 const backupPath = `${filePath}.replace-backup`;
11 fs.writeFileSync(tempPath, content, { mode: options.mode || 0o600, encoding: options.encoding });
12 try {
13 if (process.platform === "win32" && fs.existsSync(filePath)) {
14 try { fs.unlinkSync(backupPath); } catch {}
15 fs.renameSync(filePath, backupPath);
16 try {
17 fs.renameSync(tempPath, filePath);
18 fs.unlinkSync(backupPath);
19 } catch (error) {
20 try { fs.renameSync(backupPath, filePath); } catch {}
21 throw error;
22 }
23 } else {
24 fs.renameSync(tempPath, filePath);
25 }
26 } catch (error) {
27 try { fs.unlinkSync(tempPath); } catch {}
28 throw error;
29 }
32function atomicWriteJson(filePath, value) {
33 atomicWriteFile(filePath, `${JSON.stringify(value, null, 2)}\n`, { encoding: "utf8", mode: 0o600 });
36module.exports = { atomicWriteFile, atomicWriteJson };
SHA-2567aee82e6b371127f5467bd9f5b77e57dfccbe53d8b7eed9a675767ff4c8c5610

CH-J Proprietary Software License 1.14 · Източникът е предоставен под CH-J Proprietary Software License 1.14. Неговата наличност не променя лицензионните условия или не предоставя допълнителни права.

Архив SHA-2565a8ea02d06a5643cf2330fe9f54b8767a06c1c59d36527705e536fa9dbca7614