summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-06-15 13:10:58 -0400
committerDax Raad <[email protected]>2025-06-15 13:11:11 -0400
commit230d0a15109f82abf1ea2f60665ca753f4fd7bd5 (patch)
treeca29a9fa9d6480a13aee225e0f8e3553155cd20c /packages
parent46ff2c0ae0f524e44ece1e0fa2db25e36befb1a2 (diff)
downloadopencode-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-xpackages/opencode/script/publish.ts4
-rw-r--r--packages/opencode/src/cli/cmd/upgrade.ts48
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")
},
}