diff options
| author | Dax Raad <[email protected]> | 2025-06-15 13:10:58 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-06-15 13:11:11 -0400 |
| commit | 230d0a15109f82abf1ea2f60665ca753f4fd7bd5 (patch) | |
| tree | ca29a9fa9d6480a13aee225e0f8e3553155cd20c /packages | |
| parent | 46ff2c0ae0f524e44ece1e0fa2db25e36befb1a2 (diff) | |
| download | opencode-230d0a15109f82abf1ea2f60665ca753f4fd7bd5.tar.gz opencode-230d0a15109f82abf1ea2f60665ca753f4fd7bd5.zip | |
fix postinstall script for node
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/opencode/script/postinstall.mjs (renamed from packages/opencode/script/postinstall.js) | 0 | ||||
| -rwxr-xr-x | packages/opencode/script/publish.ts | 4 | ||||
| -rw-r--r-- | packages/opencode/src/cli/cmd/upgrade.ts | 48 |
3 files changed, 30 insertions, 22 deletions
diff --git a/packages/opencode/script/postinstall.js b/packages/opencode/script/postinstall.mjs index 7bf119269..7bf119269 100644 --- a/packages/opencode/script/postinstall.js +++ b/packages/opencode/script/postinstall.mjs diff --git a/packages/opencode/script/publish.ts b/packages/opencode/script/publish.ts index 705247b0f..2b301080c 100755 --- a/packages/opencode/script/publish.ts +++ b/packages/opencode/script/publish.ts @@ -64,7 +64,7 @@ for (const [os, arch] of targets) { await $`mkdir -p ./dist/${pkg.name}` await $`cp -r ./bin ./dist/${pkg.name}/bin` -await $`cp ./script/postinstall.js ./dist/${pkg.name}/postinstall.js` +await $`cp ./script/postinstall.mjs ./dist/${pkg.name}/postinstall.mjs` await Bun.file(`./dist/${pkg.name}/package.json`).write( JSON.stringify( { @@ -73,7 +73,7 @@ await Bun.file(`./dist/${pkg.name}/package.json`).write( [pkg.name]: `./bin/${pkg.name}`, }, scripts: { - postinstall: "node ./postinstall.js", + postinstall: "node ./postinstall.mjs", }, version, optionalDependencies, diff --git a/packages/opencode/src/cli/cmd/upgrade.ts b/packages/opencode/src/cli/cmd/upgrade.ts index 95159ce73..c5e60f3a5 100644 --- a/packages/opencode/src/cli/cmd/upgrade.ts +++ b/packages/opencode/src/cli/cmd/upgrade.ts @@ -122,7 +122,7 @@ export const UpgradeCommand = { UI.empty() UI.println(UI.logo(" ")) UI.empty() - prompts.intro("upgrade") + prompts.intro("Upgrade") if (!process.execPath.includes(path.join(".opencode", "bin")) && false) { prompts.log.error( @@ -132,10 +132,16 @@ export const UpgradeCommand = { return } - const release = args.target ? await specific(args.target) : await latest() - const target = release.tag_name + const release = args.target + ? await specific(args.target).catch(() => {}) + : await latest().catch(() => {}) + if (!release) { + prompts.log.error("Failed to fetch release information") + prompts.outro("Done") + return + } - prompts.log.info(`Upgrade ${VERSION} → ${target}`) + const target = release.tag_name if (VERSION !== "dev" && compare(VERSION, target) >= 0) { prompts.log.success(`Already up to date`) @@ -143,6 +149,8 @@ export const UpgradeCommand = { return } + prompts.log.info(`From ${VERSION} → ${target}`) + const name = asset() const found = release.assets.find((a) => a.name === name) @@ -155,30 +163,30 @@ export const UpgradeCommand = { const spinner = prompts.spinner() spinner.start("Downloading update...") - let downloadPath: string - try { - downloadPath = await download(found.browser_download_url) - spinner.stop("Download complete") - } catch (downloadError) { + const downloadPath = await download(found.browser_download_url).catch( + () => {}, + ) + if (!downloadPath) { spinner.stop("Download failed") - prompts.log.error( - `Download failed: ${downloadError instanceof Error ? downloadError.message : String(downloadError)}`, - ) + prompts.log.error("Download failed") prompts.outro("Done") return } - try { - await fs.rename(downloadPath, process.execPath) - prompts.log.success(`Successfully upgraded to ${target}`) - } catch (installError) { - prompts.log.error( - `Install failed: ${installError instanceof Error ? installError.message : String(installError)}`, - ) - // Clean up downloaded file + spinner.stop("Download complete") + + const renamed = await fs + .rename(downloadPath, process.execPath) + .catch(() => {}) + + if (renamed === undefined) { + prompts.log.error("Install failed") await fs.unlink(downloadPath).catch(() => {}) + prompts.outro("Done") + return } + prompts.log.success(`Successfully upgraded to ${target}`) prompts.outro("Done") }, } |
