summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/app/app.ts11
-rw-r--r--packages/opencode/src/index.ts3
-rw-r--r--packages/opencode/src/util/log.ts2
-rw-r--r--packages/tui/internal/theme/loader.go3
-rw-r--r--scripts/hooks.bat16
5 files changed, 31 insertions, 4 deletions
diff --git a/packages/opencode/src/app/app.ts b/packages/opencode/src/app/app.ts
index ac4423594..873554d90 100644
--- a/packages/opencode/src/app/app.ts
+++ b/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, "-")
+ }
}
+
diff --git a/packages/opencode/src/index.ts b/packages/opencode/src/index.ts
index d5890e8d7..50fa5cccb 100644
--- a/packages/opencode/src/index.ts
+++ b/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)
diff --git a/packages/opencode/src/util/log.ts b/packages/opencode/src/util/log.ts
index a6691d5d0..7db81de0c 100644
--- a/packages/opencode/src/util/log.ts
+++ b/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()
diff --git a/packages/tui/internal/theme/loader.go b/packages/tui/internal/theme/loader.go
index 424dc5f56..7df46b7fe 100644
--- a/packages/tui/internal/theme/loader.go
+++ b/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)
}
diff --git a/scripts/hooks.bat b/scripts/hooks.bat
new file mode 100644
index 000000000..52d690100
--- /dev/null
+++ b/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