Skip to content

Commit bef531b

Browse files
Fix download tool4d
1 parent 5cf32ed commit bef531b

File tree

3 files changed

+23
-4
lines changed

3 files changed

+23
-4
lines changed

editor/src/apiManager.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@ export function requestLabelVersion(url: string, channel: string): Promise<Label
1414
return new Promise((resolve, reject) => {
1515
const request = proto.get(url, {timeout:120}, response => {
1616
if (response.statusCode === 302 || response.statusCode === 200) {
17-
const regex = /_(([0-9]{2})(\.(x)|R([0-9])*)?|main)_([0-9]{6})/;
17+
const regex = /_(([0-9]{2})(\.(x)|R([0-9]+)*)?|main)_([0-9]{6})/;
1818
const version = new LabeledVersion(0, 0, 0, 0, false, channel, false);
1919
const resultRegex = regex.exec(response.headers.location);
20+
2021
if (resultRegex) {
2122
if (resultRegex[1] && resultRegex[1] === "main") {
2223
version.isRRelease = true;
@@ -80,10 +81,25 @@ export class APIManager {
8081
return labelVersion.version - 1;
8182
}
8283

84+
public async HasRReleaseVersionAvailable(inStartMajorVersion: number, inChannel: string): Promise<boolean> {
85+
const labelVersion = new LabeledVersion(inStartMajorVersion, 0, 0, 0, true, inChannel, false);
86+
let hasRRelease = true;
87+
const url = this.getURLTool4D(labelVersion);
88+
89+
try {
90+
await requestLabelVersion(url, labelVersion.channel);
91+
}
92+
catch (error) {
93+
hasRRelease = false;
94+
}
95+
return hasRRelease;
96+
}
97+
8398
//https://resources-download.4d.com/release/20%20Rx/20%20R3/latest/mac/tool4d_v20R3_mac_x86.tar.xz
8499
//https://resources-download.4d.com/release/20%20Rx/latest/latest/win/tool4d_win.tar.xz => Last Rx released
85100
//https://resources-download.4d.com/release/20%20Rx/latest/latest/win/tool4d_win.tar.xz => Last Rx beta
86101
//https://resources-download.4d.com/release/20%20Rx/20%20R3/latest/win/tool4d_win.tar.xz => Last 20R3 release
102+
//https://resources-download.4d.com/release/21.x/latest/latest/win/tool4d_win.tar.xz => Last 21.x stable
87103
/*
88104
Starting from 20R5
89105
Linux has tar.xz and .deb

editor/src/test/toolDownload.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ suite('Download tool', () => {
5555

5656
while (true) {
5757
try {
58-
await requestLabelVersion(`https://resources-download.4d.com/release/${number}.x/latest/latest/win/tool4d_win.tar.xz`, "stable");
58+
await requestLabelVersion(`https://resources-download.4d.com/release/${number}.x/latest/latest/win/tool4d_win.tar.xz`, "beta");
5959
number++;
6060
}
6161
catch (error) {

editor/src/toolPreparator.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ export class ToolPreparator {
6565
const versions = getDirectories(inRootFolder)
6666
.map(version => LabeledVersion.fromString(version))
6767
.filter(version => labeledVersion.channel === "beta" ? true : version.channel === "stable")
68-
.sort((a, b) => a.version - b.version);
68+
.sort((a, b) => { if(a.version == b.version){ return a.releaseVersion - b.releaseVersion }
69+
else { return a.version - b.version } });
6970

7071
if (versions.length > 0) {
7172
localLabelVersion = versions[versions.length - 1];
@@ -174,8 +175,10 @@ export class ToolPreparator {
174175
try {
175176
if (labeledVersionWanted.isLatest() && !labeledVersionWanted.isMain()) {
176177
lastMajorVersion = await this._APIManager.getLastMajorVersionAvailable(21, labeledVersionWanted.channel);
178+
const hasRRelease = await this._APIManager.HasRReleaseVersionAvailable(lastMajorVersion, labeledVersionWanted.channel);
177179
labeledVersionWanted.version = lastMajorVersion;
178-
Logger.get().log("lastVersion available is", labeledVersionWanted.version);
180+
labeledVersionWanted.isRRelease = hasRRelease;
181+
Logger.get().log("lastVersion major version available is", labeledVersionWanted.version);
179182
}
180183

181184

0 commit comments

Comments
 (0)