@@ -108,6 +108,13 @@ const performInstallation = async (args, isUpdate = false) => {
108108 capabilities ,
109109 log ,
110110 ) ;
111+
112+ // Handle script installation case
113+ if ( result && result . method === "script" ) {
114+ log . log ( `Successfully installed via script: ${ source . repo } ` ) ;
115+ return ;
116+ }
117+
111118 selected = result . selected ;
112119 releaseInfo = result . releaseInfo ;
113120 break ;
@@ -152,8 +159,7 @@ const performInstallation = async (args, isUpdate = false) => {
152159 }
153160
154161 log . log (
155- `Successfully ${
156- isUpdate ? "updated" : "installed"
162+ `Successfully ${ isUpdate ? "updated" : "installed"
157163 } : ${ installationResult . binaries . join ( ", " ) } `,
158164 ) ;
159165 } finally {
@@ -238,8 +244,7 @@ const handleSmartUrlSource = async (
238244 log . debug ( "Assets found:" ) ;
239245 result . assets . forEach ( ( asset , index ) => {
240246 log . debug (
241- ` ${ index + 1 } . ${ asset . name } (ext: ${
242- asset . extension || "none"
247+ ` ${ index + 1 } . ${ asset . name } (ext: ${ asset . extension || "none"
243248 } , url: ${ asset . browser_download_url } )`,
244249 ) ;
245250 } ) ;
@@ -253,15 +258,14 @@ const handleSmartUrlSource = async (
253258 log . log ( "No compatible assets found. Available downloads:" ) ;
254259 result . assets . forEach ( ( asset , index ) => {
255260 log . log (
256- ` ${ index + 1 } . ${ asset . name } (${
257- asset . extension || "no extension"
261+ ` ${ index + 1 } . ${ asset . name } (${ asset . extension || "no extension"
258262 } ) - ${ asset . browser_download_url } `,
259263 ) ;
260264 } ) ;
261265
262266 throw new Error (
263267 `Couldn't find a compatible download for ${ platformInfo . platform } /${ platformInfo . arch } . ` +
264- `Check manually: ${ source . url } ` ,
268+ `Check manually: ${ source . url } ` ,
265269 ) ;
266270 }
267271
@@ -287,8 +291,7 @@ const handleWebsiteSource = async (source, platformInfo, capabilities, log) => {
287291 log . debug ( "Assets found:" ) ;
288292 assets . forEach ( ( asset , index ) => {
289293 log . debug (
290- ` ${ index + 1 } . ${ asset . name } (ext: ${
291- asset . extension || "none"
294+ ` ${ index + 1 } . ${ asset . name } (ext: ${ asset . extension || "none"
292295 } , url: ${ asset . browser_download_url } )`,
293296 ) ;
294297 } ) ;
@@ -302,15 +305,14 @@ const handleWebsiteSource = async (source, platformInfo, capabilities, log) => {
302305 log . log ( "No compatible assets found. Available downloads:" ) ;
303306 assets . forEach ( ( asset , index ) => {
304307 log . log (
305- ` ${ index + 1 } . ${ asset . name } (${
306- asset . extension || "no extension"
308+ ` ${ index + 1 } . ${ asset . name } (${ asset . extension || "no extension"
307309 } ) - ${ asset . browser_download_url } `,
308310 ) ;
309311 } ) ;
310312
311313 throw new Error (
312314 `Couldn't find a compatible download for ${ platformInfo . platform } /${ platformInfo . arch } . ` +
313- `Check manually: ${ source . url } ` ,
315+ `Check manually: ${ source . url } ` ,
314316 ) ;
315317 }
316318
@@ -326,10 +328,10 @@ const displayScriptPreview = (script, log) => {
326328 const { code, source, score } = script ;
327329 log . log (
328330 `Found installer code in ${ source } (score: ${ score } ):\n\n` +
329- colors . fg . green +
330- code +
331- colors . reset +
332- "\n" ,
331+ colors . fg . green +
332+ code +
333+ colors . reset +
334+ "\n" ,
333335 ) ;
334336} ;
335337
@@ -455,6 +457,8 @@ const handleGitHubSource = async (source, platformInfo, capabilities, log) => {
455457 body ,
456458 ) ;
457459
460+ log . debug ( `Found ${ installScripts . length } install scripts` ) ;
461+
458462 // Check for installer.sh in assets
459463 const installerScript = assets . find ( ( i ) => i . name . includes ( "installer.sh" ) ) ;
460464 if ( installerScript ) {
@@ -490,6 +494,8 @@ const handleGitHubSource = async (source, platformInfo, capabilities, log) => {
490494 const shouldUseInstallSnippets =
491495 ! selected || hasHighPriorityInstallScript ( installScripts ) ;
492496
497+ log . debug ( `Selected asset: ${ ! ! selected } , use snippets: ${ shouldUseInstallSnippets } , scripts: ${ installScripts . length } ` ) ;
498+
493499 if ( shouldUseInstallSnippets && installScripts . length > 0 ) {
494500 if ( ! selected ) {
495501 log . debug ( `No suitable asset found, using install scripts as fallback` ) ;
@@ -519,7 +525,7 @@ const handleGitHubSource = async (source, platformInfo, capabilities, log) => {
519525 ) ;
520526 addInstallation ( installRecord ) ;
521527
522- return ;
528+ return { success : true , method : "script" } ;
523529 }
524530 }
525531
@@ -533,7 +539,7 @@ const handleGitHubSource = async (source, platformInfo, capabilities, log) => {
533539 }
534540 throw new Error (
535541 `Couldn't find a compatible binary for ${ platformInfo . platform } /${ platformInfo . arch } . ` +
536- `Check manually: https://github.com/${ source . owner } /${ source . repo } /releases` ,
542+ `Check manually: https://github.com/${ source . owner } /${ source . repo } /releases` ,
537543 ) ;
538544 }
539545
0 commit comments