Android" ]; case 'ios': return [ '/ios', 'iOS', 'icon-mobile', false, "iOS", " iOS" ]; case 'linux': return [ '/linux', 'Linux', 'icon-linux', __("Download .deb"), "Linux", " Linux" ]; case 'osx': return [ '/osx', 'macOS', 'icon-apple', __("Download for macOS"), "OSX", " macOS" ]; case 'windows': return [ '/windows', 'Windows', 'icon-windows', __("Download for Windows"), "Windows", " Windows" ]; } } public static function getAll() { //url, English name, icon class, partial name //yes, this is probably a bad pattern return [ OS::OS_WINDOWS => ['/windows', 'Windows', 'icon-windows', __("Download for Windows"), "Windows"], OS::OS_OSX => ['/osx', 'macOS', 'icon-apple', __("Download for macOS"), "OSX"], OS::OS_LINUX => ['/linux', 'Linux', 'icon-linux', __("Download .deb"), "Linux"], OS::OS_ANDROID => ['/android', 'Android', 'icon-android', false, false], OS::OS_IOS => ['/ios', 'iOS', 'icon-ios', false, false] ]; } public static function getOsForExtension($ext) { switch ($ext) { case 'deb': case 'AppImage': return OS::OS_LINUX; case 'dmg': case 'pkg': return OS::OS_OSX; case 'msi': // fallthrough case 'exe': return OS::OS_WINDOWS; case 'apk': return OS::OS_ANDROID; default: throw new LogicException("Unknown ext $ext"); } } }