Skip to content

Commit ab9490d

Browse files
author
Akos Kitta
committed
fix: incorrect certificate flashing command string
Use a `string` array of command flags instead of the concatenated final `string` command. Ref: #2067 Closes #2179 Signed-off-by: Akos Kitta <[email protected]>
1 parent b256655 commit ab9490d

File tree

3 files changed

+21
-10
lines changed

3 files changed

+21
-10
lines changed

Diff for: arduino-ide-extension/src/browser/contributions/upload-certificate.ts

+17-6
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ import {
1919
import { ArduinoFirmwareUploader } from '../../common/protocol/arduino-firmware-uploader';
2020
import { nls } from '@theia/core/lib/common';
2121

22+
interface UploadCertificateParams {
23+
readonly fqbn: string;
24+
readonly address: string;
25+
readonly urls: readonly string[];
26+
}
27+
2228
@injectable()
2329
export class UploadCertificate extends Contribution {
2430
@inject(UploadCertificateDialog)
@@ -74,12 +80,17 @@ export class UploadCertificate extends Contribution {
7480
});
7581

7682
registry.registerCommand(UploadCertificate.Commands.UPLOAD_CERT, {
77-
execute: async ({ fqbn, address, urls }) => {
78-
return this.arduinoFirmwareUploader.uploadCertificates(
79-
`-b ${fqbn} -a ${address} ${urls
80-
.map((url: string) => `-u ${url}`)
81-
.join(' ')}`
82-
);
83+
execute: async (params: UploadCertificateParams) => {
84+
const { fqbn, address, urls } = params;
85+
return this.arduinoFirmwareUploader.uploadCertificates({
86+
flags: [
87+
'-b',
88+
fqbn,
89+
'-a',
90+
address,
91+
...urls.flatMap((url) => ['-u', url]),
92+
],
93+
});
8394
},
8495
});
8596

Diff for: arduino-ide-extension/src/common/protocol/arduino-firmware-uploader.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Port } from "./boards-service";
1+
import type { Port } from './boards-service';
22

33
export const ArduinoFirmwareUploaderPath =
44
'/services/arduino-firmware-uploader';
@@ -13,7 +13,7 @@ export type FirmwareInfo = {
1313
export interface ArduinoFirmwareUploader {
1414
list(fqbn?: string): Promise<FirmwareInfo[]>;
1515
flash(firmware: FirmwareInfo, port: Port): Promise<string>;
16-
uploadCertificates(command: string): Promise<any>;
16+
uploadCertificates(params: { flags: string[] }): Promise<any>;
1717
updatableBoards(): Promise<string[]>;
1818
availableFirmwares(fqbn: string): Promise<FirmwareInfo[]>;
1919
}

Diff for: arduino-ide-extension/src/node/arduino-firmware-uploader-impl.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ export class ArduinoFirmwareUploaderImpl implements ArduinoFirmwareUploader {
1717
@inject(MonitorManager)
1818
private readonly monitorManager: MonitorManager;
1919

20-
async uploadCertificates(command: string): Promise<string> {
21-
return await this.runCommand(['certificates', 'flash', command]);
20+
async uploadCertificates(params: { flags: string[] }): Promise<string> {
21+
return await this.runCommand(['certificates', 'flash', ...params.flags]);
2222
}
2323

2424
async list(fqbn?: string): Promise<FirmwareInfo[]> {

0 commit comments

Comments
 (0)