refactor: move directory creation before lock file operations. fix #6

This commit is contained in:
weishu
2025-12-25 21:48:33 +08:00
parent d083a73cb0
commit 0762f0772f
+4 -5
View File
@@ -74,6 +74,10 @@ export async function updateSettings(
const MAX_LOCK_ATTEMPTS = 50; // Maximum number of attempts (5 seconds total)
const STALE_LOCK_TIMEOUT_MS = 10000; // Consider lock stale after 10 seconds
if (!existsSync(configuration.happyHomeDir)) {
await mkdir(configuration.happyHomeDir, { recursive: true });
}
const lockFile = configuration.settingsFile + '.lock';
const tmpFile = configuration.settingsFile + '.tmp';
let fileHandle;
@@ -115,11 +119,6 @@ export async function updateSettings(
// Apply update
const updated = await updater(current);
// Ensure directory exists
if (!existsSync(configuration.happyHomeDir)) {
await mkdir(configuration.happyHomeDir, { recursive: true });
}
// Write atomically using rename
await writeFile(tmpFile, JSON.stringify(updated, null, 2));
await rename(tmpFile, configuration.settingsFile); // Atomic on POSIX