Ver Fonte

windows fixes (#374)

Co-authored-by: Matthew Glazar <[email protected]>
Dax há 8 meses atrás
pai
commit
ec001ca02f

+ 10 - 1
packages/opencode/src/app/app.ts

@@ -46,7 +46,7 @@ export namespace App {
     const data = path.join(
       Global.Path.data,
       "project",
-      git ? git.split(path.sep).filter(Boolean).join("-") : "global",
+      git ? directory(git) : "global",
     )
     const stateFile = Bun.file(path.join(data, APP_JSON))
     const state = (await stateFile.json().catch(() => ({}))) as {
@@ -133,4 +133,13 @@ export namespace App {
       }),
     )
   }
+
+  function directory(input: string): string {
+    return input
+      .split(path.sep)
+      .filter(Boolean)
+      .join("-")
+      .replace(/[^A-Za-z0-9_]/g, "-")
+  }
 }
+

+ 2 - 1
packages/opencode/src/index.ts

@@ -4,6 +4,7 @@ import { Server } from "./server/server"
 import fs from "fs/promises"
 import path from "path"
 import { Share } from "./share/share"
+import url from "node:url"
 import { Global } from "./global"
 import yargs from "yargs"
 import { hideBin } from "yargs/helpers"
@@ -63,7 +64,7 @@ const cli = yargs(hideBin(process.argv))
           const server = Server.listen()
 
           let cmd = ["go", "run", "./main.go"]
-          let cwd = new URL("../../tui/cmd/opencode", import.meta.url).pathname
+          let cwd = url.fileURLToPath(new URL("../../tui/cmd/opencode", import.meta.url))
           if (Bun.embeddedFiles.length > 0) {
             const blob = Bun.embeddedFiles[0] as File
             const binary = path.join(Global.Path.cache, "tui", blob.name)

+ 1 - 1
packages/opencode/src/util/log.ts

@@ -19,7 +19,7 @@ export namespace Log {
     await fs.mkdir(dir, { recursive: true })
     cleanup(dir)
     if (options.print) return
-    logpath = path.join(dir, new Date().toISOString().split(".")[0] + ".log")
+    logpath = path.join(dir, new Date().toISOString().split(".")[0].replace(/:/g, "") + ".log")
     const logfile = Bun.file(logpath)
     await fs.truncate(logpath).catch(() => {})
     const writer = logfile.writer()

+ 2 - 1
packages/tui/internal/theme/loader.go

@@ -6,6 +6,7 @@ import (
 	"fmt"
 	"image/color"
 	"os"
+	"path"
 	"path/filepath"
 	"strings"
 
@@ -42,7 +43,7 @@ func LoadThemesFromJSON() error {
 			continue
 		}
 		themeName := strings.TrimSuffix(entry.Name(), ".json")
-		data, err := themesFS.ReadFile(filepath.Join("themes", entry.Name()))
+		data, err := themesFS.ReadFile(path.Join("themes", entry.Name()))
 		if err != nil {
 			return fmt.Errorf("failed to read theme file %s: %w", entry.Name(), err)
 		}

+ 16 - 0
scripts/hooks.bat

@@ -0,0 +1,16 @@
+@echo off
+
+if not exist ".git" (
+    exit /b 0
+)
+
+if not exist ".git\hooks" (
+    mkdir ".git\hooks"
+)
+
+(
+    echo #!/bin/sh
+    echo bun run typecheck
+) > ".git\hooks\pre-push"
+
+echo ✅ Pre-push hook installed