CH-J Server Managerbainisteoireacht freastalaí SSH
Roghchlár
Foinse foilsithe

CH-J Server Manager

Brabhsáil comhadlanna agus comhaid chun feidhmchlár áirithe a scaoileadh.

Íosluchtaigh foinse ZIP
CH-J / Server Manager 339 Comhaid
core-20261014T184258Z-3fbed0b93fdf Suimigh: Dáta gan taifeadadh · Tógtha:
Comhaid
atomicFile.js Suimigh: Dáta gan taifeadadh 1.2 KB · 36 líne
Íosluchtaigh comhad
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 · Tá Foinse ar fáil faoin CH-J Proprietary Software License 1.14. Ní chuireann a infhaighteacht a athrú ar na téarmaí ceadúnais nó cearta breise a dheonú.

Cartlann SHA-2563df08cf5e899262a6ce92d7ec2caf5c42b683f1f2b57055662b845ff7dde67a8