rtts / ialauncher

Play all of the Internet Archive’s MS-DOS games offline!
GNU General Public License v3.0
77 stars 6 forks source link

DOSBox discovery is not reliable #10

Closed JaapJoris closed 3 years ago

JaapJoris commented 3 years ago

IA Launcher looks for DOSBox in a few places before it gives up. However, the user might have installed DOSBox in a place IA Launcher didn't check to look.

Note that if you add the path to the dosbox command to the PATH environment variable IA Launcher will always find it

Here's how this can be improved:

JaapJoris commented 3 years ago

https://stackoverflow.com/questions/65520398/how-to-programmatically-open-an-application-by-name-on-windows https://stackoverflow.com/questions/65516999/how-to-programmatically-open-an-application-by-name-on-macos

hiatsu0 commented 3 years ago

Finding all "installed" applications on macOS seems to be quite fast with command:

system_profiler SPApplicationsDataType

This prints out a list in readable format below, or using -xml parameter in XML-format further down:

dosbox-x:

  Version: 0.83.9
  Obtained from: Unknown
  Last Modified: 31.12.2020 20.31
  Kind: iOS
  Location: /Applications/dosbox-x.app
  Get Info String: 0.83.9, Copyright 2021 DOSBox-X

DOSBox:

  Version: .74-3-3
  Obtained from: Identified Developer
  Last Modified: 22.9.2020 21.26
  Kind: Intel
  Signed by: Developer ID Application: Dominik Reichardt (5PRK96AWD5), Developer ID Certification Authority, Apple Root CA
  Location: /Applications/dosbox.app
  Get Info String: 0.74-3-3, Copyright 2002-2020 The DOSBox Team

IA Launcher:

  Version: 1.0
  Obtained from: Unknown
  Last Modified: 6.1.2021 20.55
  Kind: Universal
  Location: /Users/MYUSERNAME/Documents/IA Launcher/IA Launcher.app

Safari:

  Version: 14.0.2
  Obtained from: Apple
  Last Modified: 1.1.2020 10.00
  Kind: Universal
  Signed by: Software Signing, Apple Code Signing Certification Authority, Apple Root CA
  Location: /Applications/Safari.app
  Get Info String: 14.0.2, Copyright © 2003-2020 Apple Inc.

XML printout:

<dict>
    <key>_name</key>
    <string>Safari</string>
    <key>has64BitIntelCode</key>
    <string>yes</string>
    <key>info</key>
    <string>10.0, Copyright © 2003-2016 Apple Inc.</string>
    <key>lastModified</key>
    <date>2016-06-30T22:14:21Z</date>
    <key>obtained_from</key>
    <string>apple</string>
    <key>path</key>
    <string>/Applications/Safari.app</string>
    <key>runtime_environment</key>
    <string>arch_x86</string>
    <key>signed_by</key>
    <array>
        <string>Software Signing</string>
        <string>Apple Code Signing Certification Authority</string>
        <string>Apple Root CA</string>
    </array>
    <key>version</key>
    <string>10.0</string>
</dict>

(from https://apple.stackexchange.com/questions/98826/how-to-get-a-complete-list-of-all-applications-installed)

And yeah, the IA Launcher.app is an Apple Script Editor script saved as .app that has your nice icon and simply runs a one line script, so that I don't have to launch Terminal first (it won't even get displayed): do shell script "~/Library/Python/3.8/bin/ialauncher"

JaapJoris commented 3 years ago

On both Windows and macOS, IA Launcher now searches the default installation locations for DOSBox. Since I haven't had any further complaints, I will now close this issue. It's still desirable to have a proper macOS Application bundle with a nice icon, so that issue remains open here: #15