diff --git a/Applications/Accessories/MobilePASS/Online/script.js b/Applications/Accessories/MobilePASS/Online/script.js index 53a7aed4532..3405f808a74 100644 --- a/Applications/Accessories/MobilePASS/Online/script.js +++ b/Applications/Accessories/MobilePASS/Online/script.js @@ -42,7 +42,7 @@ new PlainInstaller().withScript(() => { "MobilePass", "upstream", "x86", - getLatestStableVersion(setupWizard, "x86") + getLatestStableVersion(setupWizard, null, null, "x86") ) .create(); diff --git a/Applications/Internet/Internet Explorer 6.0/Online/script.js b/Applications/Internet/Internet Explorer 6.0/Online/script.js index e93d45eacd7..fb3daad2b20 100644 --- a/Applications/Internet/Internet Explorer 6.0/Online/script.js +++ b/Applications/Internet/Internet Explorer 6.0/Online/script.js @@ -31,7 +31,7 @@ new PlainInstaller().withScript(() => { const wine = new Wine() .wizard(setupWizard) - .prefix("InternetExplorer6", "upstream", "x86", getLatestStableVersion(setupWizard, "x86")) + .prefix("InternetExplorer6", "upstream", "x86", getLatestStableVersion(setupWizard, null, null, "x86")) .create(); new Msls31(wine).go(); diff --git a/Applications/Internet/Internet Explorer 7.0/Online/script.js b/Applications/Internet/Internet Explorer 7.0/Online/script.js index f207999312d..2e08b53ffbb 100644 --- a/Applications/Internet/Internet Explorer 7.0/Online/script.js +++ b/Applications/Internet/Internet Explorer 7.0/Online/script.js @@ -21,7 +21,7 @@ new PlainInstaller().withScript(() => { const wine = new Wine() .wizard(setupWizard) - .prefix("InternetExplorer7", "upstream", "x86", getLatestStableVersion(setupWizard, "x86")) + .prefix("InternetExplorer7", "upstream", "x86", getLatestStableVersion(setupWizard, null, null, "x86")) .create(); new Sandbox(wine).go(); diff --git a/Engines/Wine/Engine/Versions/script.js b/Engines/Wine/Engine/Versions/script.js index 16e7b42858b..a0e7edc44e4 100644 --- a/Engines/Wine/Engine/Versions/script.js +++ b/Engines/Wine/Engine/Versions/script.js @@ -8,8 +8,7 @@ const propertyReader = Bean("propertyReader"); * @returns {void} */ function sortVersions(versions) { - versions.sort((a, b) => - { + versions.sort((a, b) => { // check version format const versionRegExp = /^(\d+\.\d+(\.\d+)?)(.*)?$/; if (!versionRegExp.test(a.version)) { @@ -88,8 +87,10 @@ function getLatestVersion(wizard, category, regex) { const versions = packages .filter(({ version }) => regExp.test(version)) .map(packageData => packageData.version); - - return versions[versions.length-1]; + if (versions.length === 0) { + throw new Error('No valid versions for category ' + category); + } + return versions[versions.length - 1]; } /** @@ -121,16 +122,21 @@ module.getAvailableVersions = function (wizard) { } -module.getLatestStableVersion = function (wizard, architecture) { - return getLatestVersion(wizard, "upstream-linux-" + architecture, /^\d+\.0(\.\d+)?$/); + +module.getLatestStableVersion = function (wizard, distribution, _package, architecture) { + const wineDistribution = distribution != null ? distribution : this._wineDistribution; + const winePackage = _package != null ? _package : this._winePackage; + const wineArchitecture = architecture != null ? architecture : this._wineArchitecture; + return getLatestVersion(wizard, `${wineDistribution}-${winePackage}-${wineArchitecture}`, /^\d+\.0(\.\d+)?$/); } -module.getLatestDevelopmentVersion = function (wizard, architecture) { - return getLatestVersion(wizard, "upstream-linux-" + architecture, /^\d+\.\d+(\.\d+)?$/); +module.getLatestDevelopmentVersion = function (wizard) { + return getLatestVersion(wizard, `${this._wineDistribution}-${this._winePackage}-${this._wineArchitecture}`, /^\d+\.0(\.\d+)?$/); } -module.getLatestStagingVersion = function (wizard, architecture) { - return getLatestVersion(wizard, "staging-linux-" + architecture, /^\d+\.\d+(\.\d+)?$/); +module.getLatestStagingVersion = function (wizard) { + const wineDistribution = this._winePackage === "darwin" ? "cx" : "staging"; + return getLatestVersion(wizard, `${wineDistribution}-${this._winePackage}-${this._wineArchitecture}`, /^\d+\.0(\.\d+)?$/); } module.getLatestDosSupportVersion = function (/*wizard, architecture*/) { diff --git a/Engines/Wine/QuickScript/Online Installer Script/script.js b/Engines/Wine/QuickScript/Online Installer Script/script.js index e021e495bf1..bef2e8011cc 100644 --- a/Engines/Wine/QuickScript/Online Installer Script/script.js +++ b/Engines/Wine/QuickScript/Online Installer Script/script.js @@ -5,7 +5,6 @@ const { createTempFile } = include("utils.functions.filesystem.files"); module.default = class OnlineInstallerScript extends InstallerScript { constructor() { super(); - this._installationArgs = []; } diff --git a/Engines/Wine/QuickScript/Quick Script/script.js b/Engines/Wine/QuickScript/Quick Script/script.js index f906c8f8177..d709ea445b5 100644 --- a/Engines/Wine/QuickScript/Quick Script/script.js +++ b/Engines/Wine/QuickScript/Quick Script/script.js @@ -1,11 +1,13 @@ const { getLatestStableVersion } = include("engines.wine.engine.versions"); const WineShortcut = include("engines.wine.shortcuts.wine"); +const operatingSystemFetcher = Bean("operatingSystemFetcher"); module.default = class QuickScript { constructor() { + this._winePackage = operatingSystemFetcher.fetchCurrentOperationSystem().getWinePackage() + this._wineArchitecture = this._winePackage === "darwin" ? "x86on64" : "x86"; + this._wineDistribution = this._winePackage === "darwin" ? "cx" : "upstream"; this._wineVersionFunction = getLatestStableVersion; - this._wineArchitecture = "x86"; - this._wineDistribution = "upstream"; this._wineUserSettings = false; this._type = "Applications"; @@ -154,7 +156,7 @@ module.default = class QuickScript { * @returns {void} */ _determineWineVersion(wizard) { - this._wineVersion = this._wineVersionFunction(wizard, this._wineArchitecture); + this._wineVersion = this._wineVersionFunction(wizard, this._wineDistribution, this._winePackage, this._wineArchitecture); } /**