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:
@@ -3,7 +3,10 @@
|
|||||||
* Contains settings for hook command execution (zsh, etc.)
|
* Contains settings for hook command execution (zsh, etc.)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
const isWindows = process.platform === "win32"
|
||||||
|
|
||||||
export const DEFAULT_CONFIG = {
|
export const DEFAULT_CONFIG = {
|
||||||
forceZsh: true,
|
// Windows doesn't have zsh by default, so we disable forceZsh on Windows
|
||||||
|
forceZsh: !isWindows,
|
||||||
zshPath: "/bin/zsh",
|
zshPath: "/bin/zsh",
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,11 @@ import { createRequire } from "module"
|
|||||||
import { dirname, join } from "path"
|
import { dirname, join } from "path"
|
||||||
import { existsSync } from "fs"
|
import { existsSync } from "fs"
|
||||||
import * as fs from "fs"
|
import * as fs from "fs"
|
||||||
|
import { tmpdir } from "os"
|
||||||
import { getCachedBinaryPath, ensureCommentCheckerBinary } from "./downloader"
|
import { getCachedBinaryPath, ensureCommentCheckerBinary } from "./downloader"
|
||||||
|
|
||||||
const DEBUG = process.env.COMMENT_CHECKER_DEBUG === "1"
|
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[]) {
|
function debugLog(...args: unknown[]) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { spawn } from "bun"
|
import { spawn } from "bun"
|
||||||
import { existsSync, mkdirSync, chmodSync, unlinkSync, appendFileSync } from "fs"
|
import { existsSync, mkdirSync, chmodSync, unlinkSync, appendFileSync } from "fs"
|
||||||
import { join } from "path"
|
import { join } from "path"
|
||||||
import { homedir } from "os"
|
import { homedir, tmpdir } from "os"
|
||||||
import { createRequire } from "module"
|
import { createRequire } from "module"
|
||||||
|
|
||||||
const DEBUG = process.env.COMMENT_CHECKER_DEBUG === "1"
|
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[]) {
|
function debugLog(...args: unknown[]) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
|
|||||||
@@ -3,9 +3,11 @@ import { runCommentChecker, getCommentCheckerPath, startBackgroundInit, type Hoo
|
|||||||
|
|
||||||
import * as fs from "fs"
|
import * as fs from "fs"
|
||||||
import { existsSync } from "fs"
|
import { existsSync } from "fs"
|
||||||
|
import { tmpdir } from "os"
|
||||||
|
import { join } from "path"
|
||||||
|
|
||||||
const DEBUG = process.env.COMMENT_CHECKER_DEBUG === "1"
|
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[]) {
|
function debugLog(...args: unknown[]) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
|
|||||||
@@ -2,9 +2,14 @@ import { spawn } from "child_process"
|
|||||||
import { exec } from "child_process"
|
import { exec } from "child_process"
|
||||||
import { promisify } from "util"
|
import { promisify } from "util"
|
||||||
import { existsSync } from "fs"
|
import { existsSync } from "fs"
|
||||||
|
import { homedir } from "os"
|
||||||
|
|
||||||
const DEFAULT_ZSH_PATHS = ["/bin/zsh", "/usr/bin/zsh", "/usr/local/bin/zsh"]
|
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 {
|
function findZshPath(customZshPath?: string): string | null {
|
||||||
if (customZshPath && existsSync(customZshPath)) {
|
if (customZshPath && existsSync(customZshPath)) {
|
||||||
return customZshPath
|
return customZshPath
|
||||||
@@ -39,7 +44,7 @@ export async function executeHookCommand(
|
|||||||
cwd: string,
|
cwd: string,
|
||||||
options?: ExecuteHookOptions
|
options?: ExecuteHookOptions
|
||||||
): Promise<CommandResult> {
|
): Promise<CommandResult> {
|
||||||
const home = process.env.HOME ?? ""
|
const home = getHomeDir()
|
||||||
|
|
||||||
let expandedCommand = command
|
let expandedCommand = command
|
||||||
.replace(/^~(?=\/|$)/g, home)
|
.replace(/^~(?=\/|$)/g, home)
|
||||||
|
|||||||
Reference in New Issue
Block a user