fix: Improve Windows compatibility for paths and shell config

- Use os.tmpdir() instead of hardcoded /tmp for cross-platform temp files
- Use os.homedir() with USERPROFILE fallback for Windows home directory
- Disable forceZsh on Windows (zsh not available by default)

🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
This commit is contained in:
YeonGyu-Kim
2025-12-16 01:02:49 +09:00
parent a10ee64c51
commit be900454d8
5 changed files with 17 additions and 6 deletions

View File

@@ -3,7 +3,10 @@
* Contains settings for hook command execution (zsh, etc.)
*/
const isWindows = process.platform === "win32"
export const DEFAULT_CONFIG = {
forceZsh: true,
// Windows doesn't have zsh by default, so we disable forceZsh on Windows
forceZsh: !isWindows,
zshPath: "/bin/zsh",
}

View File

@@ -3,10 +3,11 @@ import { createRequire } from "module"
import { dirname, join } from "path"
import { existsSync } from "fs"
import * as fs from "fs"
import { tmpdir } from "os"
import { getCachedBinaryPath, ensureCommentCheckerBinary } from "./downloader"
const DEBUG = process.env.COMMENT_CHECKER_DEBUG === "1"
const DEBUG_FILE = "/tmp/comment-checker-debug.log"
const DEBUG_FILE = join(tmpdir(), "comment-checker-debug.log")
function debugLog(...args: unknown[]) {
if (DEBUG) {

View File

@@ -1,11 +1,11 @@
import { spawn } from "bun"
import { existsSync, mkdirSync, chmodSync, unlinkSync, appendFileSync } from "fs"
import { join } from "path"
import { homedir } from "os"
import { homedir, tmpdir } from "os"
import { createRequire } from "module"
const DEBUG = process.env.COMMENT_CHECKER_DEBUG === "1"
const DEBUG_FILE = "/tmp/comment-checker-debug.log"
const DEBUG_FILE = join(tmpdir(), "comment-checker-debug.log")
function debugLog(...args: unknown[]) {
if (DEBUG) {

View File

@@ -3,9 +3,11 @@ import { runCommentChecker, getCommentCheckerPath, startBackgroundInit, type Hoo
import * as fs from "fs"
import { existsSync } from "fs"
import { tmpdir } from "os"
import { join } from "path"
const DEBUG = process.env.COMMENT_CHECKER_DEBUG === "1"
const DEBUG_FILE = "/tmp/comment-checker-debug.log"
const DEBUG_FILE = join(tmpdir(), "comment-checker-debug.log")
function debugLog(...args: unknown[]) {
if (DEBUG) {

View File

@@ -2,9 +2,14 @@ import { spawn } from "child_process"
import { exec } from "child_process"
import { promisify } from "util"
import { existsSync } from "fs"
import { homedir } from "os"
const DEFAULT_ZSH_PATHS = ["/bin/zsh", "/usr/bin/zsh", "/usr/local/bin/zsh"]
function getHomeDir(): string {
return process.env.HOME || process.env.USERPROFILE || homedir()
}
function findZshPath(customZshPath?: string): string | null {
if (customZshPath && existsSync(customZshPath)) {
return customZshPath
@@ -39,7 +44,7 @@ export async function executeHookCommand(
cwd: string,
options?: ExecuteHookOptions
): Promise<CommandResult> {
const home = process.env.HOME ?? ""
const home = getHomeDir()
let expandedCommand = command
.replace(/^~(?=\/|$)/g, home)