ninxsoft / mist-cli

A Mac command-line tool that automatically downloads macOS Firmwares / Installers.
MIT License
620 stars 29 forks source link

`--platform` option with parameters "intel" and "apple" are a bit misleading/confusing #54

Closed PicoMitchell closed 2 years ago

PicoMitchell commented 2 years ago

Since --platform intel downloads an app that is actually Universal and works on Apple Silicon, it can lead users to think that the "intel" app download is Intel-only instead of a Universal app that can also be installed on Apple Silicon (reference: https://macadmins.slack.com/archives/C016JHNMP1N/p1642626345010200)

I think it may be more clear to potentially replace the --platform option with maybe --format (or maybe --type is also good) which could have possible parameters of "app" or "ipsw" (or maybe "installer" vs "firmware") and there could be notes in the help info that app's (for Big Sur and newer) are Universal and ipsw's are Apple Silicon only.

ninxsoft commented 2 years ago

Hey @PicoMitchell, I do feel --platform better conveys the difference between the download types (as opposed to --format or --type), so I am proposing the following:

  1. Keep --platform as the option to choose between Universal Installers (.app) and Apple Silicon firmwares (.ipsw).
  2. Change the intel option to universal, and keep apple as-is.
  3. Update the mist list --help and mist download --help output to better communicate the differences between universal and apple.
  4. Bonus: Make intel a legacy alias for universal, to help reduce changes to existing workflows. I'm 50/50 on this one...

Thoughts?

PicoMitchell commented 2 years ago

Thanks for thinking about this change and for sharing your thoughts.

I think that changing --platform intel to --platform universal would help alleviate some confusion, but it would also be imprecise in a different way since only the Big Sur and newer apps are Universal and Catalina and older are Intel-only. And, if you were to break the app listings up to only have Big Sur and newer show when --platform universal is specified and then keep --platform intel to only show Catalina and older, I think that would likely lead to more confusion as well as cause backwards compatibility issues.

So, while I think switching to --platform universal is slightly better, it's still not totally accurate.

I think another alternative to the --format/--type idea, would be --kind which has a similar meaning and should be clear as that is the term Finder uses in a files Info window. But, the short option for that would conflict with the existing --keychain short option. You could use the capitalized -K for --kind if you wanted (or switch --keychain to capital -K since it may be less used, but changing existing options like that is not great for backwards compatibility).

Personally, I think would move to specifying --kind app and --kind ipsw as I think it's very accurate and specific.

Another option may be to not have any --platform (or --kind) option and to expand the idea used in the mist download options where the --application, --image, etc options exist. You could simply add an --ipswoption for the Apple Silicon IPSW downloads and then add --application and --ipsw options to mist list to replace the --platform functionality.

Overall, I think this is kind of a more complex issue than it appears at first glance. I hope these thoughts help come to decision that you're happy with and that works well for mist and its users.

ninxsoft commented 2 years ago

I think you have won me over with --kind! The first thing that comes to mind is Finder's use of the term, and ultimately that's what we're trying to differentiate, right?

I'll see if I can create aliases for app|installer and ipsw|firmware as options, otherwise I'll have to pick one (whichever "feels nicer")...