diff options
| author | Dax Raad <[email protected]> | 2025-12-09 15:51:41 -0500 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-12-09 15:51:55 -0500 |
| commit | a2e460bc4b68da55cb4674df7a0c7507812cb5c0 (patch) | |
| tree | 67f0fdee1730bf97f17fbefcd70c681486c7b7cc | |
| parent | fc9081afe4bc2e238993b2f4a4c41d9de12f0548 (diff) | |
| download | opencode-a2e460bc4b68da55cb4674df7a0c7507812cb5c0.tar.gz opencode-a2e460bc4b68da55cb4674df7a0c7507812cb5c0.zip | |
discover logic
| -rw-r--r-- | packages/opencode/src/project/project.ts | 42 |
1 files changed, 22 insertions, 20 deletions
diff --git a/packages/opencode/src/project/project.ts b/packages/opencode/src/project/project.ts index 7577f661f..a3b552b75 100644 --- a/packages/opencode/src/project/project.ts +++ b/packages/opencode/src/project/project.ts @@ -131,26 +131,28 @@ export namespace Project { if (input.vcs !== "git") return if (input.icon) return const glob = new Bun.Glob("**/{favicon}.{ico,png,svg,jpg,jpeg,webp}") - for await (const match of glob.scan({ - cwd: input.worktree, - absolute: true, - onlyFiles: true, - followSymlinks: false, - dot: false, - })) { - const file = Bun.file(match) - const buffer = await file.arrayBuffer() - const base64 = Buffer.from(buffer).toString("base64") - const mime = file.type || "image/png" - const url = `data:${mime};base64,${base64}` - await update({ - projectID: input.id, - icon: { - url, - }, - }) - return - } + const matches = await Array.fromAsync( + glob.scan({ + cwd: input.worktree, + absolute: true, + onlyFiles: true, + followSymlinks: false, + dot: false, + }), + ) + const shortest = matches.sort((a, b) => a.length - b.length)[0] + const file = Bun.file(shortest) + const buffer = await file.arrayBuffer() + const base64 = Buffer.from(buffer).toString("base64") + const mime = file.type || "image/png" + const url = `data:${mime};base64,${base64}` + await update({ + projectID: input.id, + icon: { + url, + }, + }) + return } async function migrateFromGlobal(newProjectID: string, worktree: string) { |
