CH-J Server ManagerSSH によるサーバー管理
メニュー
公開済みのソース

CH-J Server Manager

特定のアプリケーションリリースのディレクトリとファイルを閲覧できます。

ソースの ZIP をダウンロード
CH-J / Server Manager 377 ファイル
core-20261019T111616Z-160a00bfcddc 追加日時: · ビルド日時:
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-256a9605c0870a223b6a8542bb0705edd51d8b04f3069582653417a8397fabcc09a
ファイル