From c909c4b3fb2ac03794e1344573225f391eb12f4c Mon Sep 17 00:00:00 2001 From: Alberto Iannaccone Date: Fri, 25 Feb 2022 17:19:51 +0100 Subject: [PATCH] add preference to set a custom update url --- .../src/browser/arduino-frontend-contribution.tsx | 3 ++- arduino-ide-extension/src/browser/arduino-preferences.ts | 9 +++++++++ arduino-ide-extension/src/common/protocol/ide-updater.ts | 2 +- .../src/electron-main/ide-updater/ide-updater-impl.ts | 7 ++----- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx index f4ebbb2f6..af90e2035 100644 --- a/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx +++ b/arduino-ide-extension/src/browser/arduino-frontend-contribution.tsx @@ -280,7 +280,8 @@ export class ArduinoFrontendContribution } this.updaterService.init( - this.arduinoPreferences.get('arduino.ide.updateChannel') + this.arduinoPreferences.get('arduino.ide.updateChannel'), + this.arduinoPreferences.get('arduino.ide.updateBaseUrl') ); this.updater.checkForUpdates(true).then(async (updateInfo) => { if (!updateInfo) return; diff --git a/arduino-ide-extension/src/browser/arduino-preferences.ts b/arduino-ide-extension/src/browser/arduino-preferences.ts index 910d724bc..ba6bc83c4 100644 --- a/arduino-ide-extension/src/browser/arduino-preferences.ts +++ b/arduino-ide-extension/src/browser/arduino-preferences.ts @@ -78,6 +78,14 @@ export const ArduinoConfigSchema: PreferenceSchema = { "Release channel to get updated from. 'stable' is the stable release, 'nightly' is the latest development build." ), }, + 'arduino.ide.updateBaseUrl': { + type: 'string', + default: 'https://downloads.arduino.cc/arduino-ide', + description: nls.localize( + 'arduino/preferences/ide.updateBaseUrl', + `The base URL where to download updates from. Defaults to 'https://downloads.arduino.cc/arduino-ide'` + ), + }, 'arduino.board.certificates': { type: 'string', description: nls.localize( @@ -178,6 +186,7 @@ export interface ArduinoConfiguration { 'arduino.window.autoScale': boolean; 'arduino.window.zoomLevel': number; 'arduino.ide.updateChannel': UpdateChannel; + 'arduino.ide.updateBaseUrl': string; 'arduino.board.certificates': string; 'arduino.sketchbook.showAllFiles': boolean; 'arduino.cloud.enabled': boolean; diff --git a/arduino-ide-extension/src/common/protocol/ide-updater.ts b/arduino-ide-extension/src/common/protocol/ide-updater.ts index f7fdc96ac..92226398c 100644 --- a/arduino-ide-extension/src/common/protocol/ide-updater.ts +++ b/arduino-ide-extension/src/common/protocol/ide-updater.ts @@ -46,7 +46,7 @@ export interface ProgressInfo { export const IDEUpdaterPath = '/services/ide-updater'; export const IDEUpdater = Symbol('IDEUpdater'); export interface IDEUpdater extends JsonRpcServer { - init(channel: UpdateChannel): void; + init(channel: UpdateChannel, baseUrl: string): void; checkForUpdates(initialCheck?: boolean): Promise; downloadUpdate(): Promise; quitAndInstall(): void; diff --git a/arduino-ide-extension/src/electron-main/ide-updater/ide-updater-impl.ts b/arduino-ide-extension/src/electron-main/ide-updater/ide-updater-impl.ts index 06e840999..b953c3281 100644 --- a/arduino-ide-extension/src/electron-main/ide-updater/ide-updater-impl.ts +++ b/arduino-ide-extension/src/electron-main/ide-updater/ide-updater-impl.ts @@ -8,7 +8,6 @@ import { } from '../../common/protocol/ide-updater'; const CHANGELOG_BASE_URL = 'https://downloads.arduino.cc/arduino-ide/changelog'; -const IDE_DOWNLOAD_BASE_URL = 'https://downloads.arduino.cc/arduino-ide'; @injectable() export class IDEUpdaterImpl implements IDEUpdater { @@ -18,14 +17,12 @@ export class IDEUpdaterImpl implements IDEUpdater { protected theiaFEClient?: IDEUpdaterClient; protected clients: Array = []; - init(channel: UpdateChannel): void { + init(channel: UpdateChannel, baseUrl: string): void { this.updater.autoDownload = false; this.updater.channel = channel; this.updater.setFeedURL({ provider: 'generic', - url: `${IDE_DOWNLOAD_BASE_URL}/${ - channel === UpdateChannel.Nightly ? 'nightly' : '' - }`, + url: `${baseUrl}/${channel === UpdateChannel.Nightly ? 'nightly' : ''}`, channel, });