@@ -17,6 +17,7 @@ const {
1717 selectBestAsset,
1818 extractArchive,
1919 getBinaries,
20+ processExtractedPackages,
2021 installApp,
2122 installPkg,
2223 mountDMG,
@@ -150,8 +151,7 @@ const performInstallation = async (args, isUpdate = false) => {
150151 }
151152
152153 log . log (
153- `Successfully ${
154- isUpdate ? "updated" : "installed"
154+ `Successfully ${ isUpdate ? "updated" : "installed"
155155 } : ${ installationResult . binaries . join ( ", " ) } `
156156 ) ;
157157 } finally {
@@ -236,8 +236,7 @@ const handleSmartUrlSource = async (
236236 log . debug ( "Assets found:" ) ;
237237 result . assets . forEach ( ( asset , index ) => {
238238 log . debug (
239- ` ${ index + 1 } . ${ asset . name } (ext: ${
240- asset . extension || "none"
239+ ` ${ index + 1 } . ${ asset . name } (ext: ${ asset . extension || "none"
241240 } , url: ${ asset . browser_download_url } )`
242241 ) ;
243242 } ) ;
@@ -251,15 +250,14 @@ const handleSmartUrlSource = async (
251250 log . log ( "No compatible assets found. Available downloads:" ) ;
252251 result . assets . forEach ( ( asset , index ) => {
253252 log . log (
254- ` ${ index + 1 } . ${ asset . name } (${
255- asset . extension || "no extension"
253+ ` ${ index + 1 } . ${ asset . name } (${ asset . extension || "no extension"
256254 } ) - ${ asset . browser_download_url } `
257255 ) ;
258256 } ) ;
259257
260258 throw new Error (
261259 `Couldn't find a compatible download for ${ platformInfo . platform } /${ platformInfo . arch } . ` +
262- `Check manually: ${ source . url } `
260+ `Check manually: ${ source . url } `
263261 ) ;
264262 }
265263
@@ -285,8 +283,7 @@ const handleWebsiteSource = async (source, platformInfo, capabilities, log) => {
285283 log . debug ( "Assets found:" ) ;
286284 assets . forEach ( ( asset , index ) => {
287285 log . debug (
288- ` ${ index + 1 } . ${ asset . name } (ext: ${
289- asset . extension || "none"
286+ ` ${ index + 1 } . ${ asset . name } (ext: ${ asset . extension || "none"
290287 } , url: ${ asset . browser_download_url } )`
291288 ) ;
292289 } ) ;
@@ -300,15 +297,14 @@ const handleWebsiteSource = async (source, platformInfo, capabilities, log) => {
300297 log . log ( "No compatible assets found. Available downloads:" ) ;
301298 assets . forEach ( ( asset , index ) => {
302299 log . log (
303- ` ${ index + 1 } . ${ asset . name } (${
304- asset . extension || "no extension"
300+ ` ${ index + 1 } . ${ asset . name } (${ asset . extension || "no extension"
305301 } ) - ${ asset . browser_download_url } `
306302 ) ;
307303 } ) ;
308304
309305 throw new Error (
310306 `Couldn't find a compatible download for ${ platformInfo . platform } /${ platformInfo . arch } . ` +
311- `Check manually: ${ source . url } `
307+ `Check manually: ${ source . url } `
312308 ) ;
313309 }
314310
@@ -324,10 +320,10 @@ const displayScriptPreview = (script, log) => {
324320 const { code, source, score } = script ;
325321 log . debug (
326322 `Found installer code in ${ source } (score: ${ score } ):\n\n\t` +
327- colors . fg . green +
328- code +
329- colors . reset +
330- "\n"
323+ colors . fg . green +
324+ code +
325+ colors . reset +
326+ "\n"
331327 ) ;
332328} ;
333329
@@ -498,7 +494,7 @@ const handleGitHubSource = async (source, platformInfo, capabilities, log) => {
498494 if ( ! selected ) {
499495 throw new Error (
500496 `Couldn't find a compatible binary for ${ platformInfo . platform } /${ platformInfo . arch } . ` +
501- `Check manually: https://github.com/${ source . owner } /${ source . repo } /releases`
497+ `Check manually: https://github.com/${ source . owner } /${ source . repo } /releases`
502498 ) ;
503499 }
504500
@@ -627,14 +623,32 @@ const installSelected = async (selected, downloadPath, log) => {
627623 }
628624
629625 log . debug ( `Found binaries: ${ extractedBinaries . join ( ", " ) } ` ) ;
630- destinations = await installBinaries (
626+
627+ // Check if any of the extracted files are DMG or PKG packages
628+ const packageResult = await processExtractedPackages (
631629 extractedBinaries ,
632630 outputDir ,
633631 selected . name ,
634632 checkPath ,
635633 log
636634 ) ;
637- binariesList = extractedBinaries . map ( ( bin ) => path . basename ( bin ) ) ;
635+
636+ if ( packageResult ) {
637+ // Use the package installation result
638+ installationMethod = packageResult . method ;
639+ destinations = packageResult . destinations ;
640+ binariesList = packageResult . binaries ;
641+ } else {
642+ // Fall back to regular binary installation
643+ destinations = await installBinaries (
644+ extractedBinaries ,
645+ outputDir ,
646+ selected . name ,
647+ checkPath ,
648+ log
649+ ) ;
650+ binariesList = extractedBinaries . map ( ( bin ) => path . basename ( bin ) ) ;
651+ }
638652 break ;
639653 }
640654
0 commit comments