Skip to content

Commit 7f208e6

Browse files
committed
chore: improve whisky discoverability on mac
Heroic-Games-Launcher#3728 (comment)
1 parent ac0a8ef commit 7f208e6

File tree

1 file changed

+26
-23
lines changed

1 file changed

+26
-23
lines changed

src/backend/utils/compatibility_layers.ts

+26-23
Original file line numberDiff line numberDiff line change
@@ -387,29 +387,32 @@ export async function getWhisky(): Promise<Set<WineInstallation>> {
387387
return whisky
388388
}
389389

390-
await execAsync(
391-
'mdfind kMDItemCFBundleIdentifier = "com.isaacmarovitz.Whisky"'
392-
).then(async ({ stdout }) => {
393-
stdout.split('\n').forEach((whiskyMacPath) => {
394-
const infoFilePath = join(whiskyMacPath, 'Contents/Info.plist')
395-
if (whiskyMacPath && existsSync(infoFilePath)) {
396-
const info = plistParse(
397-
readFileSync(infoFilePath, 'utf-8')
398-
) as PlistObject
399-
const version = info['CFBundleShortVersionString'] || ''
400-
const whiskyWineBin = `${userHome}/Library/Application Support/com.isaacmarovitz.Whisky/Libraries/Wine/bin/wine64`
401-
402-
whisky.add({
403-
bin: whiskyWineBin,
404-
name: `Whisky - ${version}`,
405-
type: `toolkit`,
406-
lib: `${dirname(whiskyWineBin)}/../lib`,
407-
lib32: `${dirname(whiskyWineBin)}/../lib`,
408-
...getWineExecs(whiskyWineBin)
409-
})
410-
}
411-
})
412-
})
390+
const whiskyWinePath = `${userHome}/Library/Application Support/com.isaacmarovitz.Whisky/Libraries`
391+
const whiskyVersionPlist = `${whiskyWinePath}/WhiskyWineVersion.plist`
392+
const whiskyWineBin = `${whiskyWinePath}/Wine/bin/wine64`
393+
394+
if (existsSync(whiskyVersionPlist) && existsSync(whiskyWineBin)) {
395+
try {
396+
const info = plistParse(
397+
readFileSync(whiskyVersionPlist, 'utf-8')
398+
) as PlistObject
399+
const version = info['version']
400+
const versionString = `${version['major']}.${version['minor']}.${version['patch']}-${version['build']}`
401+
whisky.add({
402+
bin: whiskyWineBin,
403+
name: `Whisky - ${versionString}`,
404+
type: `toolkit`,
405+
lib: `${dirname(whiskyWineBin)}/../lib`,
406+
lib32: `${dirname(whiskyWineBin)}/../lib`,
407+
...getWineExecs(whiskyWineBin)
408+
})
409+
} catch (error) {
410+
logError(
411+
`Error getting wine version for ${whiskyWineBin}`,
412+
LogPrefix.GlobalConfig
413+
)
414+
}
415+
}
413416

414417
return whisky
415418
}

0 commit comments

Comments
 (0)