Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 43 additions & 31 deletions Engines/Wine/QuickScript/Installer Script/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ include("utils.functions.filesystem.extract");
include("utils.functions.filesystem.files");
include("engines.wine.verbs.luna");

const operatingSystemFetcher = Bean("operatingSystemFetcher");

class InstallerScript extends QuickScript {
constructor() {
super();
Expand All @@ -22,50 +24,58 @@ class InstallerScript extends QuickScript {
setupWizard.presentation(this._name, this._editor, this._applicationHomepage, this._author);

// get installation file from concrete InstallerScript implementation
var installationCommand = this._installationCommand(setupWizard);
const installationCommand = this._installationCommand(setupWizard);

var wine = new Wine()
.wizard(setupWizard);
const wine = new Wine().wizard(setupWizard);

// let user select wine settings if desired
if (this._wineUserSettings) {
var architectures = ["x86", "amd64"];
var shownArchitectures = ["x86 (recommended)", "amd64"];
var selectedArchitecture = setupWizard.menu(tr("Please select the wine architecture."), shownArchitectures, "x86 (recommended)");
const architectures = ["x86", "amd64"];
const selectedArchitecture = setupWizard.menu(
tr("Please select the wine architecture."),
["x86 (recommended)", "amd64"],
"x86 (recommended)"
);

this._wineArchitecture = architectures[selectedArchitecture.index];

var distributions = wine.availableDistributions(this._wineArchitecture);
var shownDistributions = [];
for (var distributionIdx in distributions) {
if (distributions[distributionIdx] == "upstream") {
shownDistributions.push("upstream (recommended)");
}
else {
shownDistributions.push(distributions[distributionIdx]);
const distributions = wine.availableDistributions(this._wineArchitecture);
const shownDistributions = distributions.map(distribution => {
if (distribution == "upstream") {
return "upstream (recommended)";
} else {
return distribution;
}
}
var selectedDistribution = setupWizard.menu(tr("Please select the wine distribution."), shownDistributions, "upstream (recommended)");
});
const selectedDistribution = setupWizard.menu(
tr("Please select the wine distribution."),
shownDistributions,
"upstream (recommended)"
);
this._wineDistribution = distributions[selectedDistribution.index];

var operatingSystemFetcher = Bean("operatingSystemFetcher");
var operatingSystem = operatingSystemFetcher.fetchCurrentOperationSystem().getWinePackage();
var versions = wine.availableVersions(this._wineDistribution + "-" + operatingSystem + "-" + this._wineArchitecture);
var shownVersions = [];
for (var versionIdx in versions) {
if (versions[versionIdx] == LATEST_STABLE_VERSION) {
shownVersions.push(versions[versionIdx] + " (recommended)");
const operatingSystem = operatingSystemFetcher.fetchCurrentOperationSystem().getWinePackage();
const versions = wine.availableVersions(
`${this._wineDistribution}-${operatingSystem}-${this._wineArchitecture}`
);
const shownVersions = versions.map(version => {
if (version == LATEST_STABLE_VERSION) {
return `${version} (recommended)`;
} else {
return version;
}
else {
shownVersions.push(versions[versionIdx]);
}
}
var selectedVersion = setupWizard.menu(tr("Please select the wine version."), shownVersions, LATEST_STABLE_VERSION + " (recommended)");
});
const selectedVersion = setupWizard.menu(
tr("Please select the wine version."),
shownVersions,
LATEST_STABLE_VERSION + " (recommended)"
);

this._wineVersion = versions[selectedVersion.index];
}

// setup the prefix
wine.prefix(this._name, this._wineDistribution, this._wineArchitecture, this._wineVersion)
.luna();
wine.prefix(this._name, this._wineDistribution, this._wineArchitecture, this._wineVersion).luna();

this._preInstall(wine, setupWizard);

Expand All @@ -76,7 +86,9 @@ class InstallerScript extends QuickScript {

// if no executable given, ask user
if (!this._executable) {
this._executable = fileName(setupWizard.browse(tr("Please select the executable."), wine.prefixDirectory(), ["exe"]));
this._executable = fileName(
setupWizard.browse(tr("Please select the executable."), wine.prefixDirectory(), ["exe"])
);
}

this._createShortcut(wine.prefix());
Expand Down