@@ -122,7 +122,7 @@ export const UpgradeCommand = {
122122 UI . empty ( )
123123 UI . println ( UI . logo ( " " ) )
124124 UI . empty ( )
125- prompts . intro ( "upgrade " )
125+ prompts . intro ( "Upgrade " )
126126
127127 if ( ! process . execPath . includes ( path . join ( ".opencode" , "bin" ) ) && false ) {
128128 prompts . log . error (
@@ -132,17 +132,25 @@ export const UpgradeCommand = {
132132 return
133133 }
134134
135- const release = args . target ? await specific ( args . target ) : await latest ( )
136- const target = release . tag_name
135+ const release = args . target
136+ ? await specific ( args . target ) . catch ( ( ) => { } )
137+ : await latest ( ) . catch ( ( ) => { } )
138+ if ( ! release ) {
139+ prompts . log . error ( "Failed to fetch release information" )
140+ prompts . outro ( "Done" )
141+ return
142+ }
137143
138- prompts . log . info ( `Upgrade ${ VERSION } → ${ target } ` )
144+ const target = release . tag_name
139145
140146 if ( VERSION !== "dev" && compare ( VERSION , target ) >= 0 ) {
141147 prompts . log . success ( `Already up to date` )
142148 prompts . outro ( "Done" )
143149 return
144150 }
145151
152+ prompts . log . info ( `From ${ VERSION } → ${ target } ` )
153+
146154 const name = asset ( )
147155 const found = release . assets . find ( ( a ) => a . name === name )
148156
@@ -155,30 +163,30 @@ export const UpgradeCommand = {
155163 const spinner = prompts . spinner ( )
156164 spinner . start ( "Downloading update..." )
157165
158- let downloadPath : string
159- try {
160- downloadPath = await download ( found . browser_download_url )
161- spinner . stop ( "Download complete" )
162- } catch ( downloadError ) {
166+ const downloadPath = await download ( found . browser_download_url ) . catch (
167+ ( ) => { } ,
168+ )
169+ if ( ! downloadPath ) {
163170 spinner . stop ( "Download failed" )
164- prompts . log . error (
165- `Download failed: ${ downloadError instanceof Error ? downloadError . message : String ( downloadError ) } ` ,
166- )
171+ prompts . log . error ( "Download failed" )
167172 prompts . outro ( "Done" )
168173 return
169174 }
170175
171- try {
172- await fs . rename ( downloadPath , process . execPath )
173- prompts . log . success ( `Successfully upgraded to ${ target } ` )
174- } catch ( installError ) {
175- prompts . log . error (
176- `Install failed: ${ installError instanceof Error ? installError . message : String ( installError ) } ` ,
177- )
178- // Clean up downloaded file
176+ spinner . stop ( "Download complete" )
177+
178+ const renamed = await fs
179+ . rename ( downloadPath , process . execPath )
180+ . catch ( ( ) => { } )
181+
182+ if ( renamed === undefined ) {
183+ prompts . log . error ( "Install failed" )
179184 await fs . unlink ( downloadPath ) . catch ( ( ) => { } )
185+ prompts . outro ( "Done" )
186+ return
180187 }
181188
189+ prompts . log . success ( `Successfully upgraded to ${ target } ` )
182190 prompts . outro ( "Done" )
183191 } ,
184192}
0 commit comments