mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-11-19 07:09:28 +00:00
Initial support of the default paths from the CLI.
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
import { inject, injectable } from 'inversify';
|
||||
import * as fs from 'fs';
|
||||
import * as grpc from '@grpc/grpc-js';
|
||||
import * as PQueue from 'p-queue';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import URI from '@theia/core/lib/common/uri';
|
||||
import { FileSystem } from '@theia/filesystem/lib/common';
|
||||
import { WorkspaceServiceExt } from '../browser/workspace-service-ext';
|
||||
import { ToolOutputServiceServer } from '../common/protocol/tool-output-service';
|
||||
import { ArduinoCoreClient } from './cli-protocol/commands/commands_grpc_pb';
|
||||
import {
|
||||
InitResp,
|
||||
@@ -10,16 +16,9 @@ import {
|
||||
UpdateLibrariesIndexReq,
|
||||
UpdateLibrariesIndexResp
|
||||
} from './cli-protocol/commands/commands_pb';
|
||||
import { WorkspaceServiceExt } from '../browser/workspace-service-ext';
|
||||
import { FileSystem } from '@theia/filesystem/lib/common';
|
||||
import URI from '@theia/core/lib/common/uri';
|
||||
import { CoreClientProvider, Client } from './core-client-provider';
|
||||
import * as PQueue from 'p-queue';
|
||||
import { ToolOutputServiceServer } from '../common/protocol/tool-output-service';
|
||||
import { ArduinoCli } from './arduino-cli';
|
||||
import { Instance } from './cli-protocol/commands/common_pb';
|
||||
import * as fs from 'fs-extra';
|
||||
import * as path from 'path';
|
||||
import * as os from 'os';
|
||||
import { CoreClientProvider, Client } from './core-client-provider';
|
||||
|
||||
@injectable()
|
||||
export class CoreClientProviderImpl implements CoreClientProvider {
|
||||
@@ -36,6 +35,9 @@ export class CoreClientProviderImpl implements CoreClientProvider {
|
||||
@inject(ToolOutputServiceServer)
|
||||
protected readonly toolOutputService: ToolOutputServiceServer;
|
||||
|
||||
@inject(ArduinoCli)
|
||||
protected readonly cli: ArduinoCli;
|
||||
|
||||
async getClient(workspaceRootOrResourceUri?: string): Promise<Client | undefined> {
|
||||
return this.clientRequestQueue.add(() => new Promise<Client | undefined>(async resolve => {
|
||||
const roots = await this.workspaceServiceExt.roots();
|
||||
@@ -76,19 +78,19 @@ export class CoreClientProviderImpl implements CoreClientProvider {
|
||||
throw new Error(`Could not resolve filesystem path of URI: ${rootUri}.`);
|
||||
}
|
||||
|
||||
const defaultDownloadsDirPath = path.resolve(os.homedir(), 'Arduino-PoC', 'downloads');
|
||||
if (!fs.existsSync(defaultDownloadsDirPath)) {
|
||||
fs.mkdirpSync(defaultDownloadsDirPath);
|
||||
const { dataDirPath, sketchDirPath } = await this.cli.getDefaultConfig();
|
||||
|
||||
if (!fs.existsSync(dataDirPath)) {
|
||||
throw new Error(`Data dir path does not exist: ${dataDirPath}.`);
|
||||
}
|
||||
|
||||
const defaultDataDirPath = path.resolve(os.homedir(), 'Arduino-PoC', 'data')
|
||||
if (!fs.existsSync(defaultDataDirPath)) {
|
||||
fs.mkdirpSync(defaultDataDirPath);
|
||||
if (!fs.existsSync(sketchDirPath)) {
|
||||
throw new Error(`Sketch dir path does not exist: ${sketchDirPath}.`);
|
||||
}
|
||||
|
||||
config.setSketchbookdir(rootPath);
|
||||
config.setDatadir(defaultDataDirPath);
|
||||
config.setDownloadsdir(defaultDownloadsDirPath);
|
||||
config.setSketchbookdir(sketchDirPath);
|
||||
config.setDatadir(dataDirPath);
|
||||
config.setDownloadsdir(dataDirPath);
|
||||
config.setBoardmanageradditionalurlsList(['https://downloads.arduino.cc/packages/package_index.json']);
|
||||
|
||||
const initReq = new InitReq();
|
||||
|
||||
Reference in New Issue
Block a user