diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js index b90d4c3a..979de8a5 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js @@ -64,6 +64,7 @@ const vscodeResources = [ 'out-build/vs/base/node/{stdForkStart.js,terminateProcess.sh,cpuUsage.sh,ps.sh}', 'out-build/vs/base/browser/ui/codicons/codicon/**', 'out-build/vs/base/parts/sandbox/electron-sandbox/preload.js', + 'out-build/vs/base/parts/sandbox/electron-sandbox/deploypreload.js', 'out-build/vs/base/parts/sandbox/electron-sandbox/preload-aux.js', 'out-build/vs/workbench/browser/media/*-theme.css', 'out-build/vs/workbench/contrib/debug/**/*.json', @@ -123,6 +124,7 @@ const optimizeVSCodeTask = task.define('optimize-vscode', task.series( manual: [ { src: [...windowBootstrapFiles, 'out-build/vs/code/electron-sandbox/workbench/workbench.js'], out: 'vs/code/electron-sandbox/workbench/workbench.js' }, { src: [...windowBootstrapFiles, 'out-build/vs/code/electron-sandbox/issue/issueReporter.js'], out: 'vs/code/electron-sandbox/issue/issueReporter.js' }, + { src: [...windowBootstrapFiles, 'out-build/vs/code/electron-sandbox/deploy/deployWindow.js'], out: 'vs/code/electron-sandbox/deploy/deployWindow.js' }, { src: [...windowBootstrapFiles, 'out-build/vs/code/electron-sandbox/processExplorer/processExplorer.js'], out: 'vs/code/electron-sandbox/processExplorer/processExplorer.js' } ] } @@ -228,6 +230,10 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op const extensions = gulp.src(['.build/extensions/**', ...platformSpecificBuiltInExtensionsExclusions], { base: '.build', dot: true }); + //打包配置文件 + gulp.src('installwizard/config/*').pipe(gulp.dest(destination + '/resources/app/installwizard/config/')); + //打包 + gulp.src('installwizard/key/*').pipe(gulp.dest(destination + '/resources/app/installwizard/key/')); const sources = es.merge(src, extensions) .pipe(filter(['**', '!**/*.js.map'], { dot: true })); diff --git a/src/vs/platform/issue/electron-main/installWizard/key/public.pem b/installwizard/key/public.pem similarity index 100% rename from src/vs/platform/issue/electron-main/installWizard/key/public.pem rename to installwizard/key/public.pem diff --git a/src/buildfile.js b/src/buildfile.js index f03de33f..eca29984 100644 --- a/src/buildfile.js +++ b/src/buildfile.js @@ -78,7 +78,8 @@ exports.code = [ createModuleDescription('vs/code/node/cliProcessMain', ['vs/code/node/cli']), createModuleDescription('vs/code/electron-sandbox/issue/issueReporterMain'), createModuleDescription('vs/code/node/sharedProcess/sharedProcessMain'), - createModuleDescription('vs/code/electron-sandbox/processExplorer/processExplorerMain') + createModuleDescription('vs/code/electron-sandbox/processExplorer/processExplorerMain'), + createModuleDescription('vs/code/electron-sandbox/deploy/deployWindowMain') ]; exports.entrypoint = createModuleDescription; diff --git a/src/vs/code/electron-sandbox/deploy/deployWindow-dev.html b/src/vs/code/electron-sandbox/deploy/deployWindow-dev.html index dbd92db7..cd122bf5 100644 --- a/src/vs/code/electron-sandbox/deploy/deployWindow-dev.html +++ b/src/vs/code/electron-sandbox/deploy/deployWindow-dev.html @@ -127,8 +127,6 @@

开发场景

- -
diff --git a/src/vs/code/electron-sandbox/deploy/deployWindow.html b/src/vs/code/electron-sandbox/deploy/deployWindow.html index 0923f218..51f98544 100644 --- a/src/vs/code/electron-sandbox/deploy/deployWindow.html +++ b/src/vs/code/electron-sandbox/deploy/deployWindow.html @@ -1,6 +1,7 @@ + -
-

hello

+
+
+
+
+
安装向导
+
+
+
+
+
+
-
+
+
+
+

安装引导说明:

+

1.本安装引导用于引导用户根据开发场景安装基础功能插件、安装依赖软件、配置基本开发环境。

+

2.本安装引导仅安装基础插件,可以在插件市场中获取更多插件。

+

3.在线安装功能需要连接互联网下载插件和依赖软件。

+

4.您也可以选择跳过此步骤,自己手动安装插件和依赖软件。

+

5.点击帮助按钮,会访问线上帮助文档

+
+
+
+ + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

请稍等片刻...

+

正在联网进行配置文件下载、检查、校验及本地配置文件的校验等工作

+
+
+
+
+

说明:

+

1.检查到有配置文件更新。本安装引导会根据配置文件更新内容。新配置文件可能修改了旧版本配置文件的问题,建议选择“是”更新配置文件。

+

2.如果您想按照旧版配置文件操作,可以选择“否”不更新配置文件。

+
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

开发场景

+
+
+
+
+
+
+

+								
+
+
+
+
+
+
+ 安装进度: + 00.00% +
+
+ + +
+
+ +
+ +
+ +
+

+									
+									
+									
+									
+								
+
+
+
+ +
+ +
+ +
- - - diff --git a/src/vs/code/electron-sandbox/deploy/deployWindowMain.ts b/src/vs/code/electron-sandbox/deploy/deployWindowMain.ts index e3e7d380..5fca1b59 100644 --- a/src/vs/code/electron-sandbox/deploy/deployWindowMain.ts +++ b/src/vs/code/electron-sandbox/deploy/deployWindowMain.ts @@ -1,37 +1,13 @@ /*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. + * Copyright (c) kylinIDETeam. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import 'vs/css!./media/deploy'; import 'vs/base/browser/ui/codicons/codiconStyles'; // make sure codicon css is loaded -import { localize } from 'vs/nls'; -import { $, append, createStyleSheet } from 'vs/base/browser/dom'; -import { IListVirtualDelegate } from 'vs/base/browser/ui/list/list'; -import { DataTree } from 'vs/base/browser/ui/tree/dataTree'; -import { IDataSource, ITreeNode, ITreeRenderer } from 'vs/base/browser/ui/tree/tree'; -import { RunOnceScheduler } from 'vs/base/common/async'; -import { ProcessItem } from 'vs/base/common/processes'; -import { IContextMenuItem } from 'vs/base/parts/contextmenu/common/contextmenu'; -import { popup } from 'vs/base/parts/contextmenu/electron-sandbox/contextmenu'; +// import { localize } from 'vs/nls'; import { ipcRenderer } from 'vs/base/parts/sandbox/electron-sandbox/globals'; -import { IRemoteDiagnosticError, isRemoteDiagnosticError } from 'vs/platform/diagnostics/common/diagnostics'; -import { ByteSize } from 'vs/platform/files/common/files'; -import { ElectronIPCMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; -import { DeployData, DeployWindowConfiguration } from 'vs/platform/issue/common/deploy'; -import { INativeHostService } from 'vs/platform/native/common/native'; -import { NativeHostService } from 'vs/platform/native/common/nativeHostService'; -import { getIconsStyleSheet } from 'vs/platform/theme/browser/iconsStyleSheet'; -import { applyZoom, zoomIn, zoomOut } from 'vs/platform/window/electron-sandbox/window'; -import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; -import { KeyCode } from 'vs/base/common/keyCodes'; -import { mainWindow } from 'vs/base/browser/window'; -import { ThemeIcon } from 'vs/base/common/themables'; -import { Codicon } from 'vs/base/common/codicons'; -import { addDisposableListener, EventType, getWindow, getWindowId, hide, show } from 'vs/base/browser/dom'; -import { isDisposable } from 'vs/base/common/lifecycle'; -import { IOpenerService } from 'vs/platform/opener/common/opener'; -import { OpenerService } from 'vs/editor/browser/services/openerService'; +import { DeployWindowConfiguration } from 'vs/platform/issue/common/deploy'; import { IpcRendererEvent } from 'vs/base/parts/sandbox/electron-sandbox/electronTypes'; class deployWindow { @@ -69,9 +45,9 @@ class deployWindow { progressNum = 0; downState = new Map(); configList: { [key: string]: any } = {}; - extList = []; - depList = []; - scriptList = []; + extList: any[] = []; + depList: any[] = []; + scriptList: any[] = []; configData = []; // 创建监听器 @@ -327,11 +303,11 @@ class deployWindow { this.reset(); }; - private nativeHostService: INativeHostService; + // private nativeHostService: INativeHostService; // private productService: IProductService; - constructor(windowId: number, private data: DeployData) { - const mainProcessService = new ElectronIPCMainProcessService(windowId); - this.nativeHostService = new NativeHostService(windowId, mainProcessService) as INativeHostService; + constructor(windowId: number) { + // const mainProcessService = new ElectronIPCMainProcessService(windowId); + // this.nativeHostService = new NativeHostService(windowId, mainProcessService) as INativeHostService; this.onlineInstallRadio = document.getElementById("onlineInstall"); this.localInstallRadio = document.getElementById("localInstall"); @@ -346,15 +322,15 @@ class deployWindow { this.registerEventListener(); } - setHeader() { - // Minimize - var titleRight: HTMLElement | null; - titleRight = document.getElementById("header-right"); - if (titleRight) { - const minimizeIcon = append(titleRight, $('window-minimize' + ThemeIcon.asCSSSelector(Codicon.chromeMinimize))); - const closeIcon = append(titleRight, $('div.window-icon.window-close' + ThemeIcon.asCSSSelector(Codicon.chromeClose))); - } - } + // setHeader() { + // // Minimize + // var titleRight: HTMLElement | null; + // titleRight = document.getElementById("header-right"); + // if (titleRight) { + // const minimizeIcon = append(titleRight, $('window-minimize' + ThemeIcon.asCSSSelector(Codicon.chromeMinimize))); + // const closeIcon = append(titleRight, $('div.window-icon.window-close' + ThemeIcon.asCSSSelector(Codicon.chromeClose))); + // } + // } showTab(n: number) { let x = document.getElementsByClassName('tab') as HTMLCollectionOf; x[n].style.display = 'flex'; @@ -534,7 +510,7 @@ class deployWindow { console.log("nextPrev onlineInstallTab3"); // 获取所有选中的复选框 let selectedCheckboxes = checkboxForm!.querySelectorAll('input[type="checkbox"]:checked'); - let checkSelectedValues = []; + // let checkSelectedValues = []; this.extInstallState.clear(); this.extDownloadDoneCounter = 0; this.extInstallDoneCounter = 0; @@ -1213,7 +1189,7 @@ export function startup(configuration: DeployWindowConfiguration): void { // applyZoom(configuration.data.zoomLevel); console.log("-----------------dll-------------startupdeploy"); - new deployWindow(configuration.windowId, configuration.data); + new deployWindow(configuration.windowId); } diff --git a/src/vs/platform/issue/common/deploy.ts b/src/vs/platform/issue/common/deploy.ts index a73b5be4..969ed62e 100644 --- a/src/vs/platform/issue/common/deploy.ts +++ b/src/vs/platform/issue/common/deploy.ts @@ -1,11 +1,9 @@ /*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. + * Copyright (c) kylinIDETeam. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { URI } from 'vs/base/common/uri'; import { ISandboxConfiguration } from 'vs/base/parts/sandbox/common/sandboxTypes'; -import { PerformanceInfo, SystemInfo } from 'vs/platform/diagnostics/common/diagnostics'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; // Since data sent through the service is serialized to JSON, functions will be lost, so Color objects diff --git a/src/vs/platform/issue/electron-main/deployMainService.ts b/src/vs/platform/issue/electron-main/deployMainService.ts index 75dd6509..3f63a1ad 100644 --- a/src/vs/platform/issue/electron-main/deployMainService.ts +++ b/src/vs/platform/issue/electron-main/deployMainService.ts @@ -3,49 +3,30 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { BrowserWindow, BrowserWindowConstructorOptions, contentTracing, Display, ipcMain, IpcMainEvent, IpcMainInvokeEvent, screen, Menu, dialog, shell } from 'electron'; -import { arch, release, type } from 'os'; -import { resolve } from 'path'; -import { Promises, raceTimeout, timeout } from 'vs/base/common/async'; -import { CancellationTokenSource } from 'vs/base/common/cancellation'; -import { randomPath } from 'vs/base/common/extpath'; +import { BrowserWindow, BrowserWindowConstructorOptions, Display, IpcMainEvent, IpcMainInvokeEvent, screen, dialog, shell } from 'electron'; import { DisposableStore } from 'vs/base/common/lifecycle'; import { FileAccess } from 'vs/base/common/network'; import { IProcessEnvironment, isMacintosh } from 'vs/base/common/platform'; import { URI } from 'vs/base/common/uri'; -import { listProcesses } from 'vs/base/node/ps'; import { validatedIpcMain } from 'vs/base/parts/ipc/electron-main/ipcMain'; -import { localize } from 'vs/nls'; -import { IDiagnosticsService, isRemoteDiagnosticError, PerformanceInfo, SystemInfo } from 'vs/platform/diagnostics/common/diagnostics'; -import { IDiagnosticsMainService } from 'vs/platform/diagnostics/electron-main/diagnosticsMainService'; -import { IDialogMainService } from 'vs/platform/dialogs/electron-main/dialogMainService'; +// import { localize } from 'vs/nls'; +// import { IDiagnosticsService } from 'vs/platform/diagnostics/common/diagnostics'; +// import { IDiagnosticsMainService } from 'vs/platform/diagnostics/electron-main/diagnosticsMainService'; +// import { IDialogMainService } from 'vs/platform/dialogs/electron-main/dialogMainService'; import { IEnvironmentMainService } from 'vs/platform/environment/electron-main/environmentMainService'; import { IDeployMainService, DeployWindowConfiguration, DeployData } from 'vs/platform/issue/common/deploy'; -import { ILogService, ILogger } from 'vs/platform/log/common/log'; +import { ILogger } from 'vs/platform/log/common/log'; import { ILoggerMainService } from 'vs/platform/log/electron-main/loggerService'; -import { INativeHostMainService } from 'vs/platform/native/electron-main/nativeHostMainService'; +// import { INativeHostMainService } from 'vs/platform/native/electron-main/nativeHostMainService'; import product from 'vs/platform/product/common/product'; import { IProductService } from 'vs/platform/product/common/productService'; import { IIPCObjectUrl, IProtocolMainService } from 'vs/platform/protocol/electron-main/protocol'; -import { IStateService } from 'vs/platform/state/node/state'; -import { UtilityProcess } from 'vs/platform/utilityProcess/electron-main/utilityProcess'; -import { zoomLevelToZoomFactor } from 'vs/platform/window/common/window'; -import { ICodeWindow, IWindowState } from 'vs/platform/window/electron-main/window'; -import { IWindowsMainService } from 'vs/platform/windows/electron-main/windows'; -// import { IColorTheme, IThemeService } from 'vs/platform/theme/common/themeService'; -import { INativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-sandbox/environmentService'; -import { activeContrastBorder, buttonBackground, buttonForeground, buttonHoverBackground, editorBackground, editorForeground, foreground, inputActiveOptionBorder, inputBackground, inputBorder, inputForeground, inputValidationErrorBackground, inputValidationErrorBorder, inputValidationErrorForeground, listActiveSelectionBackground, listActiveSelectionForeground, listFocusBackground, listFocusForeground, listFocusOutline, listHoverBackground, listHoverForeground, scrollbarShadow, scrollbarSliderActiveBackground, scrollbarSliderBackground, scrollbarSliderHoverBackground, textLinkActiveForeground, textLinkForeground } from 'vs/platform/theme/common/colorRegistry'; -// import { getZoomLevel } from 'vs/base/browser/browser'; -import { IThemeMainService } from 'vs/platform/theme/electron-main/themeMainService' -import { platform } from 'vs/base/common/process'; +// import { IStateService } from 'vs/platform/state/node/state'; +import { IWindowState } from 'vs/platform/window/electron-main/window'; +// import { IWindowsMainService } from 'vs/platform/windows/electron-main/windows'; import { join } from 'vs/base/common/path'; -import { IOpenerService } from 'vs/platform/opener/common/opener'; import { Disposable } from 'vs/base/common/lifecycle'; -// import { logger } from 'vs/platform/issue/electron-main/logger'; import * as installUtils from 'vs/platform/issue/electron-main/installUtils'; -import * as pathUtils from 'vs/platform/issue/electron-main/pathUtils'; -import * as configUtils from 'vs/platform/issue/electron-main/configUtils'; -import * as downUtils from 'vs/platform/issue/electron-main/downUtils'; import * as fs from 'fs'; import * as path from 'path'; import * as http from 'http'; @@ -53,27 +34,27 @@ import axios from "axios"; import { spawn, ChildProcess } from 'child_process'; import { AbortController } from "@azure/abort-controller"; -const deployWindowState = 'deploy.deployWindowState'; -interface IBrowserWindowOptions { - backgroundColor: string | undefined; - title: string; - zoomLevel: number; - alwaysOnTop: boolean; -} +// const deployWindowState = 'deploy.deployWindowState'; +// interface IBrowserWindowOptions { +// backgroundColor: string | undefined; +// title: string; +// zoomLevel: number; +// alwaysOnTop: boolean; +// } -interface installInfo { +// interface installInfo { - // osInfo: string; - IDEVersion: string; - // localConfigData: {}; - // urlConfigFile; - localConfigFile: string; - // selectConfigPath; - addNewPage: number; - localosinfo: string; - urlosinfo: string; - urlConfigFile: string; -} +// // osInfo: string; +// IDEVersion: string; +// // localConfigData: {}; +// // urlConfigFile; +// localConfigFile: string; +// // selectConfigPath; +// addNewPage: number; +// localosinfo: string; +// urlosinfo: string; +// urlConfigFile: string; +// } type IStrictWindowState = Required>; @@ -81,11 +62,11 @@ export class DeployMainService implements IDeployMainService { declare readonly _serviceBrand: undefined; - private static readonly DEFAULT_BACKGROUND_COLOR = '#1E1E1E'; + // private static readonly DEFAULT_BACKGROUND_COLOR = '#1E1E1E'; private DeployWindow: BrowserWindow | null = null; - private sysinfo: installInfo; + // private sysinfo: installInfo; // private installconfigpath: string; private localConfigObject: { res: number; depConfigInfo: any; g_index_Object: any; osinfo: string; localConfigMatch: number; }; // private baseUrl: string = ""; @@ -141,22 +122,30 @@ export class DeployMainService implements IDeployMainService { private userEnv: IProcessEnvironment, @IEnvironmentMainService private readonly environmentMainService: IEnvironmentMainService, @ILoggerMainService private readonly loggerMainService: ILoggerMainService, - @ILogService private readonly logService: ILogService, - @IDiagnosticsService private readonly diagnosticsService: IDiagnosticsService, - @IDiagnosticsMainService private readonly diagnosticsMainService: IDiagnosticsMainService, - @IDialogMainService private readonly dialogMainService: IDialogMainService, - @INativeHostMainService private readonly nativeHostMainService: INativeHostMainService, + // @ILogService private readonly logService: ILogService, + // @IDiagnosticsService private readonly diagnosticsService: IDiagnosticsService, + // @IDiagnosticsMainService private readonly diagnosticsMainService: IDiagnosticsMainService, + // @IDialogMainService private readonly dialogMainService: IDialogMainService, + // @INativeHostMainService private readonly nativeHostMainService: INativeHostMainService, @IProtocolMainService private readonly protocolMainService: IProtocolMainService, @IProductService private readonly productService: IProductService, - @IStateService private readonly stateService: IStateService, - @IWindowsMainService private readonly windowsMainService: IWindowsMainService, + // @IStateService private readonly stateService: IStateService, + // @IWindowsMainService private readonly windowsMainService: IWindowsMainService, // @IOpenerService private readonly _openerService: IOpenerService, // @IThemeMainService private readonly themeMainService: IThemeMainService, // @IThemeService private readonly themeService: IThemeService, // @INativeWorkbenchEnvironmentService private readonly environmentService: INativeWorkbenchEnvironmentService, ) { - this.reset(); - this.logger = loggerMainService.createLogger(URI.file(this.installConfig + "/log/installguide.log")); + // this.sysinfo = { IDEVersion: this.productService.IDEVersion || "", localConfigFile: "", addNewPage: 0, localosinfo: "", urlosinfo: "", urlConfigFile: "" } + this.localConfigObject = { depConfigInfo: "", res: 0, g_index_Object: "", osinfo: "", localConfigMatch: 0 }; + this.updateConfigObject = { res: 0, g_index_Object: {}, osinfo: "", ConfigMatch: 0, base_url: "", depConfigInfo: "" }; + this.localConfigDir = installUtils.localConfigPath(); + this.installConfig = installUtils.installConfigDirPre();//.kylin-ide/installconfig + this.updateConfigDir = installUtils.installConfigDirPre() + "/" + installUtils.getDateDir(); + this.logFile0 = this.installConfig + '/log/install.1.log'; + this.resultFile = this.installConfig + '/resultFile'; + this.extLogFile0 = this.installConfig + '/log/extInstall.1.log'; + this.logger = this.loggerMainService.createLogger(URI.file(this.installConfig + "/log/installguide.log")); this.removeListeners(); this.registerListeners(); } @@ -553,6 +542,7 @@ export class DeployMainService implements IDeployMainService { return void 0; } } + return void 0; }; handleInitConfigSelect = async (event: IpcMainInvokeEvent, msg: any) => { @@ -1512,11 +1502,13 @@ export class DeployMainService implements IDeployMainService { }) } - private safeSend(event: IpcMainEvent, channel: string, ...args: unknown[]): void { - if (!event.sender.isDestroyed()) { - event.sender.send(channel, ...args); - } - } + + + // private safeSend(event: IpcMainEvent, channel: string, ...args: unknown[]): void { + // if (!event.sender.isDestroyed()) { + // event.sender.send(channel, ...args); + // } + // } private replaceBaseUrl(url: string, baseurl: string) { if (url.startsWith("base-url:")) { @@ -1532,7 +1524,9 @@ export class DeployMainService implements IDeployMainService { private versify(dataPath: string, signature: string) { const crypto = require('crypto'); - const publicKeyPath = path.join(__dirname, "./installWizard/key/public.pem"); + // const publicKeyPath = FileAccess.asFileUri('vs/platform/issue/electron-main/installWizard/key/public.pem').fsPath; + const publicKeyPath = path.join(FileAccess.asFileUri('').fsPath, '..', "installwizard/key/public.pem"); + this.logger.info("publicKeyPath", publicKeyPath); //获取数据 const dataToSign = fs.readFileSync(dataPath, 'utf-8'); @@ -1921,9 +1915,9 @@ export class DependInfo extends Disposable { } -interface PkgDownInfo { - name: string, - version: string, - epoch: string, - state: string //downloaded,downloadFailed -} +// interface PkgDownInfo { +// name: string, +// version: string, +// epoch: string, +// state: string //downloaded,downloadFailed +// } diff --git a/src/vs/platform/issue/electron-main/downUtils.ts b/src/vs/platform/issue/electron-main/downUtils.ts index adee86ba..dc983239 100644 --- a/src/vs/platform/issue/electron-main/downUtils.ts +++ b/src/vs/platform/issue/electron-main/downUtils.ts @@ -1,10 +1,9 @@ import { execSync } from "child_process"; -// import { logger } from 'vs/platform/issue/electron-main/logger'; export function pyDependsFromUrl(execPath: string, pkgname: string, sourceUrl: string, destPath: string) { const cmd = `${execPath} download ${pkgname} -i ${sourceUrl} -d ${destPath}`; try { - const res = execSync(cmd, { encoding: 'utf-8' }).toString().trim(); + execSync(cmd, { encoding: 'utf-8' }).toString().trim(); console.log("download success" + pkgname); return true; } @@ -24,7 +23,7 @@ export function goDependsFromUrl(execPath: string, pkgUrl: string, destPath: str // logger.debug(cmd); const envVar = { GOPATH: destPath, GO111MODULE: "on", GOPROXY: "https://goproxy.cn,direct", GOSUMDB: "off" } try { - const res = execSync(cmd, { encoding: 'utf-8', env: { ...process.env, ...envVar } }).toString().trim(); + execSync(cmd, { encoding: 'utf-8', env: { ...process.env, ...envVar } }).toString().trim(); console.log("download success" + pkgUrl); return true; } diff --git a/src/vs/platform/issue/electron-main/installUtils.ts b/src/vs/platform/issue/electron-main/installUtils.ts index eedbf44a..77bb844d 100644 --- a/src/vs/platform/issue/electron-main/installUtils.ts +++ b/src/vs/platform/issue/electron-main/installUtils.ts @@ -1,6 +1,7 @@ import * as os from 'os'; import * as fs from 'fs'; import * as path from 'path'; +import { FileAccess } from 'vs/base/common/network'; let showFunc: boolean = true; export const instflag = showFunc; @@ -20,7 +21,7 @@ export function installConfigDirPre() { // 1.如果没有selectfile.json,则使用的为/usr/share、...目录下的配置文件 // 2.如果存在selectfile.json,则使用的配置文件地址为selecDir的值 export function localConfigPath() { - let localConfigDir = path.join(path.dirname(__dirname), "../../../config/"); + let localConfigDir = path.join(FileAccess.asFileUri('').fsPath, '..', "installwizard/config/"); if (fs.existsSync(installConfigDirPre() + '/' + 'selectFile.json')) { let jsonContent = fs.readFileSync(installConfigDirPre() + '/' + 'selectFile.json', 'utf-8'); let jsonData = JSON.parse(jsonContent); diff --git a/src/vs/platform/issue/electron-main/installWizard/config/desktop_os_common-0.0.1.json b/src/vs/platform/issue/electron-main/installWizard/config/desktop_os_common-0.0.1.json deleted file mode 100644 index d3b05f67..00000000 --- a/src/vs/platform/issue/electron-main/installWizard/config/desktop_os_common-0.0.1.json +++ /dev/null @@ -1,246 +0,0 @@ -{ - "version":"0.0.1", - "kylin-ide-lowest-ver":"0.3.0", - "first_class_list":{ - "description":{ - "en":"", - "zh_cn":"勾选分类后,会安装该选项的基本插件、系统软件依赖。可以从插件市场或openKylin extensions-repo仓库获取更多插件。" - }, - "Remote_key":{ - "en":"Remote development", - "zh_cn":"远程开发" - }, - "C_key":{ - "en":"C/C++ development", - "zh_cn":"C/C++开发" - }, - "Python3_key":{ - "en":"Python3 development", - "zh_cn":"Python3开发" - }, - "Go_key":{ - "en":"Go development", - "zh_cn":"Go开发" - }, - "JavaScript_key":{ - "en":"Built-in JavaScript development", - "zh_cn":"内置JavaScript开发", - "show_type":"picked_gray" - } - }, - "second_class":{ - "Remote_key": { - "discription":{ - "en":"Remote development", - "zh_cn":"远程开发" - }, - "ext-list": [ - "KylinIdeTeam.extension-dependency", - "xhafei.remote-dev" - ], - "pkg-list":{ - }, - "script-list":[ - ] - }, - "C_key": { - "discription":{ - "en":"Basic function of C/C++ development: linting, intellisense, compile, debug. You may install other extensions to get more functions.", - "zh_cn":"C/C++开发需要的基本功能:语法检查、跳转、补全、编译、调试等。可以安装其他插件获得更多功能。" - }, - "ext-list": [ - "KylinIdeTeam.extension-dependency", - "KylinIdeTeam.gitlens", - "KylinIdeTeam.project-manager", - "KylinIdeTeam.vscode-clangd", - "KylinIdeTeam.debug", - "KylinIdeTeam.cmake-intellisence" - ], - "pkg-list":{ - "deb":{ - "git":{}, - "ssh-askpass":{}, - "clangd":{}, - "libclang-common-10-dev":{}, - "build-essential":{}, - "cmake":{}, - "gdb":{}, - "debhelper":{} - } - }, - "script-list":[ - ] - }, - "Python3_key":{ - "discription":{ - "en":"Python3 development", - "zh_cn":"Python3开发" - }, - "ext-list": [ - "KylinIdeTeam.extension-dependency", - "KylinIdeTeam.gitlens", - "KylinIdeTeam.python" - ], - "pkg-list":{ - "deb":{ - "git":{}, - "ssh-askpass":{}, - "python3":{}, - "python3-autopep8":{}, - "python3-pip":{} - } - }, - "script-list":[ - { - "order":1, - "postin":"python3-pip" , - "file_url":"base-url:/python3_config-0.0.1.sh", - "file_name": "python3_config-0.0.1.sh", - "ver": "0.0.1", - "sign-md5": "5abef8fab04ca04d2b74531c1e563ceac297e3bdced8df4a519dad90386f25682ec985b008ab73b25254add9ae92f840a1d86a5c4829389d328aa555ef30e792fee4a8beaf3da2ddba2afe19ddfa03898fef102299ef5a8fe2001af394a7e2ecfd0adc63fe4231bc95337909856b438ed73acba41f217c8f0f2ae7640bb2cc78" - } - ] - }, - "Go_key":{ - "discription":{ - "en":"Go development", - "zh_cn":"Go开发" - }, - "ext-list": [ - "KylinIdeTeam.extension-dependency", - "KylinIdeTeam.gitlens", - "KylinIdeTeam.go" - ], - "pkg-list":{ - "deb":{ - "git":{}, - "ssh-askpass":{}, - "golang-1.14":{} - } - }, - "script-list":[ - { - "order":1, - "postin":"golang-1.14", - "file_url":"base-url:/go_config-0.0.1.js", - "file_name": "go_config-0.0.1.js", - "ver": "0.0.1", - "sign-md5": "cd79e95d69868f87caca7197e68597e29a4ac9c6fce6134ba174e2f8331e372e6e7598d5e769b9dd06f8f99a82dfa5cb8602e7b17cd63e330273a7f1bb0befe25d3101ddddc7b11546cb9dfd7bf9266d5ffc0e2fc460e3bb074aba311f0ec6c930d85f61a7f4db0b473400863204b13a6f0d08749193fbaf190fafa72d340054" - } - ] - }, - "JavaScript_key":{ - "discription":{ - "en":"Built-in support JavaScript development(Please install NodeJS by yourself if needed)", - "zh_cn":"内置支持JavaScript开发(如需NodeJS,请自行安装)" - }, - "ext-list": [ - - ], - "pkg-list":{ - - }, - "script-list":[ - - ] - } - }, - "ext_detail":{ - "KylinIdeTeam.extension-dependency":{ - "ext_id": "KylinIdeTeam.extension-dependency", - "ext_version": { - "latest":true - } - }, - "KylinIdeTeam.project-manager":{ - "ext_id": "KylinIdeTeam.project-manager", - "ext_version": { - "latest":true - } - }, - "KylinIdeTeam.vscode-gradle":{ - "ext_id": "KylinIdeTeam.vscode-gradle", - "ext_version": { - "latest":true - } - }, - "KylinIdeTeam.vscode-java-dependency":{ - "ext_id": "KylinIdeTeam.vscode-java-dependency", - "ext_version": { - "latest":true - } - }, - "KylinIdeTeam.vscode-java-pack": { - "ext_id": "KylinIdeTeam.vscode-java-pack", - "ext_version": { - "latest":true - } - }, - "KylinIdeTeam.vscode-java-test": { - "ext_id": "KylinIdeTeam.vscode-java-test", - "ext_version": { - "latest":true - } - }, - "KylinIdeTeam.vscode-maven": { - "ext_id": "KylinIdeTeam.vscode-maven", - "ext_version": { - "latest":true - } - }, - "KylinIdeTeam.gitlens": { - "ext_id": "KylinIdeTeam.gitlens", - "ext_version": { - "latest":true - } - }, - "KylinIdeTeam.cmake-intellisence": { - "ext_id": "KylinIdeTeam.cmake-intellisence", - "ext_version": { - "latest":true - } - }, - "KylinIdeTeam.go": { - "ext_id": "KylinIdeTeam.go", - "ext_version": { - "latest":true - } - }, - "KylinIdeTeam.java": { - "ext_id": "KylinIdeTeam.java", - "ext_version": { - "latest":true - } - }, - "KylinIdeTeam.python": { - "ext_id": "KylinIdeTeam.python", - "ext_version": { - "latest":true - } - }, - "KylinIdeTeam.vscode-clangd": { - "ext_id": "KylinIdeTeam.vscode-clangd", - "ext_version": { - "latest":true - } - }, - "KylinIdeTeam.debug": { - "ext_id": "KylinIdeTeam.debug", - "ext_version": { - "latest":true - } - }, - "KylinIdeTeam.vscode-java-debug": { - "ext_id": "KylinIdeTeam.vscode-java-debug", - "ext_version": { - "latest":true - } - }, - "xhafei.remote-dev": { - "ext_id": "xhafei.remote-dev", - "ext_version": { - "latest":true - } - } - } -} diff --git a/src/vs/platform/issue/electron-main/installWizard/config/ext_link_address-0.0.1.json b/src/vs/platform/issue/electron-main/installWizard/config/ext_link_address-0.0.1.json deleted file mode 100644 index 9497028b..00000000 --- a/src/vs/platform/issue/electron-main/installWizard/config/ext_link_address-0.0.1.json +++ /dev/null @@ -1,319 +0,0 @@ -{ - "version": "0.0.1", - "KylinIdeTeam.extension-dependency": { - "ext_id": "KylinIdeTeam.extension-dependency", - "ext_name": "extension dependency", - "ext_descrip": { - "en": "extension dependency", - "zh_cn": "插件依赖管理器" - }, - - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "ide-extension-dependency" - } - } - }, - "KylinIdeTeam.offline-extensions-manager": { - "ext_id": "KylinIdeTeam.offline-extensions-manager", - "ext_name":"offline extensions manager", - "ext_descrip": { - "en": "offline extensions manager", - "zh_cn": "离线插件管理器" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "ide-offline-extensions-manager" - } - } - }, - "KylinIdeTeam.project-manager": { - "ext_id": "KylinIdeTeam.project-manager", - "ext_name":"Kylin Project Manager", - "ext_descrip": { - "en": "Kylin Project Manager", - "zh_cn": "麒麟项目管理器" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "ide-project-manager" - } - } - }, - "KylinIdeTeam.vscode-gradle": { - "ext_id": "KylinIdeTeam.vscode-gradle", - "ext_name":"Java Gradle (Support openjdk11 runtime)", - "ext_descrip": { - "en": "Java Gradle (Support openjdk11 runtime)", - "zh_cn": "Java Gradle(支持openjdk11运行时)" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "ide-vscode-gradle" - } - } - }, - "KylinIdeTeam.vscode-java-dependency": { - "ext_id": "KylinIdeTeam.vscode-java-dependency", - "ext_name":"Java Dependency (Support openjdk11 runtime)", - "ext_descrip": { - "en": "Java Dependency (Support openjdk11 runtime)", - "zh_cn": "Java依赖(支持openjdk11运行时) " - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "ide-vscode-java-dependency" - } - } - }, - "KylinIdeTeam.vscode-java-pack": { - "ext_id": "KylinIdeTeam.vscode-java-pack", - "ext_name":"Java Pack (Support openjdk11 runtime)", - "ext_descrip": { - "en": "Java Pack (Support openjdk11 runtime)", - "zh_cn": "Java Pack(支持openjdk11运行时) " - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "ide-vscode-java-pack" - } - } - }, - "KylinIdeTeam.vscode-java-test": { - "ext_id": "KylinIdeTeam.vscode-java-test", - "ext_name":"Java Test (Support openjdk11 runtime)", - "ext_descrip": { - "en": "Java Test (Support openjdk11 runtime)", - "zh_cn": "Java Test(支持openjdk11运行时) " - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "ide-vscode-java-test" - } - } - }, - "KylinIdeTeam.vscode-maven": { - "ext_id": "KylinIdeTeam.vscode-maven", - "ext_name":"Java Maven (Support openjdk11 runtime)", - "ext_descrip": { - "en": "Java Maven (Support openjdk11 runtime)", - "zh_cn": "Java Maven(支持openjdk11运行时) " - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "ide-vscode-maven" - } - } - }, - "KylinIdeTeam.gitlens": { - "ext_id": "KylinIdeTeam.gitlens", - "ext_name": "gitlens", - "ext_descrip": { - "en": "Gitlens lower version for friendly licence", - "zh_cn": "Gitlens免费版本" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "ide-gitlens" - } - } - }, - "KylinIdeTeam.cmake-intellisence": { - "ext_id": "KylinIdeTeam.cmake-intellisence", - "ext_name": "CMake IntelliSence", - "ext_descrip": { - "en": "CMake IntelliSence", - "zh_cn": "CMake编辑支持" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "cmake-intellisence" - } - } - }, - "KylinIdeTeam.go": { - "ext_id": "KylinIdeTeam.go", - "ext_name": "Go(for KylinOS)", - "ext_descrip": { - "en": "Go(for KylinOS)", - "zh_cn": "Go编辑调试支持(适配麒麟操作系统)" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "ide-go" - } - } - }, - "KylinIdeTeam.java": { - "ext_id": "KylinIdeTeam.java", - "ext_name": "Java (Support openjdk11 runtime) ", - "ext_descrip": { - "en": "Java (Support openjdk11 runtime) ", - "zh_cn": "Java编辑支持 (支持openjdk11运行时)" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "ide-java" - } - } - }, - "KylinIdeTeam.python": { - "ext_id": "KylinIdeTeam.python", - "ext_name": "Python(with jedi language server)", - "ext_descrip": { - "en": "Python(with jedi language server) ", - "zh_cn": "Python编辑调试支持(使用jedi语言服务端)" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "ide-python" - } - } - }, - "KylinIdeTeam.vscode-clangd": { - "ext_id": "KylinIdeTeam.vscode-clangd", - "ext_name": "vscode-clangd", - "ext_descrip": { - "en": "C/C++ edit support, use clangd as language server", - "zh_cn": "C/C++编辑支持,使用clangd作为语言服务端" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "ide-vscode-clangd" - } - } - }, - "KylinIdeTeam.debug": { - "ext_id": "KylinIdeTeam.debug", - "ext_name": "Native Debug(fix some bugs)", - "ext_descrip": { - "en": "C/C++ gdb debug support", - "zh_cn": "C/C++ gdb调试支持" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "native-debug" - } - } - }, - "KylinIdeTeam.historydebug": { - "ext_id": "KylinIdeTeam.historydebug", - "ext_name": "historyDebug", - "ext_descrip": { - "en": "history debug", - "zh_cn": "历史调试支持" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "historydebug" - } - } - }, - "KylinIdeTeam.js-debug": { - "ext_id": "KylinIdeTeam.js-debug", - "ext_name": "JavaScript Debugger(for KylinOS)", - "ext_descrip": { - "en": "JavaScript Debugger(for KylinOS)", - "zh_cn": "JavaScript调试支持(适配麒麟系统)" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "ide-js-debug" - } - } - }, - "KylinIdeTeam.vscode-java-debug": { - "ext_id": "KylinIdeTeam.vscode-java-debug", - "ext_name": "Java Debug (Support openjdk11 runtime)", - "ext_descrip": { - "en": "Java Debug (Support openjdk11 runtime)", - "zh_cn": "Java调试支持(支持openjdk11运行时)" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "vscode-java-debug" - } - } - }, - "KylinIdeTeam.deadlock-detect": { - "ext_id": "KylinIdeTeam.deadlock-detect", - "ext_name": "deadlock-detect", - "ext_descrip": { - "en": "C/C++/java deadlock detect", - "zh_cn": "C/C++/java 程序死锁分析" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "deadlock-detect" - } - } - }, - "KylinIdeTeam.memleak-detect": { - "ext_id": "KylinIdeTeam.memleak-detect", - "ext_name": "memleak-detect", - "ext_descrip": { - "en": "C/C++ memory leak detect", - "zh_cn": "C/C++ 程序泄漏检测" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "openkylin", - "repo": "ide-memleak-detect" - } - } - }, - "xhafei.remote-dev": { - "ext_id": "xhafei.remote-dev", - "ext_name": "Kylin remote development", - "ext_descrip": { - "en": "remote development support", - "zh_cn": "远程开发支持" - }, - "ext_links": { - "gitee": { - "prefix": "https://gitee.com", - "org": "mcy-kylin", - "repo": "remote-dev" - } - } - } -} \ No newline at end of file diff --git a/src/vs/platform/issue/electron-main/installWizard/config/g_index.json b/src/vs/platform/issue/electron-main/installWizard/config/g_index.json deleted file mode 100644 index 34b3dbb6..00000000 --- a/src/vs/platform/issue/electron-main/installWizard/config/g_index.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "ver": "0.0.1", - "base-url":"https://gitee.com/openkylin/extensions-repo/raw/master/inst-configs-repo/kylin-code/config", - "ext-file": { - "file_url": "base-url:/ext_link_address-0.0.1.json", - "file_name": "ext_link_address-0.0.1.json", - "ver": "0.0.1", - "sign-md5": "a57db37948052f7d03f102c16be8867a17a3b2b171bf75add8dd3d4f2b0774198e858c58792c7517fd875109eb8fee5206011c7635c87437e3d645d9b18102cfae988e2d2fc4a387cb6bbf49241b9e8fd2189ebae46633fa4bddc68912b849c07ab278eaba2adaadd260b122c7998b56b6e3308fdfdad57289522c66e8534f4d" - }, - "match-script": - { - "file_url": "base-url:/os_classify_script-0.0.1.js", - "file_name": "os_classify_script-0.0.1.js", - "ver": "0.0.1", - "sign-md5": "96c5730cd2fd1ca3e271011d8af71ca51f3c1c8a783811c2e95bb1b0131aab9c57463cc468dafd344ee617baf67ca96c529590159e7f66459ebbd219bcee7e7b7271c6e8eeed27831a696ec0d0d6a49dadb91bd5116a203cd363583384f0fccd53b0cb8e29b2f6b6b275be6fbc72e8d05fdb98f4a230377eefb2843e9a0a4e11" - }, - "config-file": { - "x86_openkylin_desktop": [ - { - "discription": { - "en": "X86 openKylin Desktop yangtze", - "zh_cn": "X86 openKylin开源操作系统" - }, - "file_url": "base-url:/desktop_os_common-0.0.1.json", - "file_name": "desktop_os_common-0.0.1.json", - "ver": "0.0.1", - "kylin-ide-lowest-ver": "0.3.0", - "sign-md5":"015746b2030147d9502c465fca90a7a5ff387b66690793869e2b155ec844fc34f01e6131043ab496265a18a7068649ab9892bd9adb5f52d0ec26e5e545df3d2f265da072a120d5d1b236f600bc701d88e1bd594cc6c846d806a9f5b32993a6eddeff860f590bf31784b6878424e29d69aba32f302ff6df63628f88e5ea1abab5" - } - ] - } -} \ No newline at end of file diff --git a/src/vs/platform/issue/electron-main/installWizard/config/go_config-0.0.1.js b/src/vs/platform/issue/electron-main/installWizard/config/go_config-0.0.1.js deleted file mode 100644 index dab8ec53..00000000 --- a/src/vs/platform/issue/electron-main/installWizard/config/go_config-0.0.1.js +++ /dev/null @@ -1,508 +0,0 @@ -const { exec, spawnSync, spawn, execSync } = require('child_process'); -const os = require('os'); -const fs = require('fs'); -//go工具安装 -function GoToolsInstall(archName, goVersion, goPath, systemtype) { - return new Promise(async (resolve, reject) => { - let installToolsMessage = ''; - let codeProcess = 0 - if (archName.indexOf('longarch64') === -1) { - installToolsMessage = "正在" + archName + "架构," + systemtype + "系统类型上安装go版本为" + goVersion + "的工具:" + '\n'; - switch (goVersion) { - case '1.13': - console.log("正在", archName, "架构,", systemtype, "系统类型上安装go版本为", goVersion, "的工具:") - try { - await gopls095Install(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - await dlv160Install(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - await goOutLineInstall(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - - resolve([installToolsMessage, codeProcess]) - - } catch (error) { - console.log("Go工具安裝失败!") - } - - return - case '1.14': - console.log("正在", archName, "架构,", systemtype, "系统类型上安装go版本为", goVersion, "的工具:") - try { - - await gopls095Install(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - await dlv161Install(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - await goOutLineInstall(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - resolve([installToolsMessage, codeProcess]) - } catch (error) { - console.log("Go工具安裝失败:", error) - } - return - case '1.15': - console.log("正在", archName, "架构,", systemtype, "系统类型上安装go版本为", goVersion, "的工具:") - try { - await gopls095Install(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - await dlv161Install(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - await goOutLineInstall(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - resolve([installToolsMessage, codeProcess]) - } catch (error) { - console.log("Go工具安裝失败:", error) - } - return - default: - console.log("正在", archName, "架构,", systemtype, "系统类型上安装go工具:") - installToolsMessage = "正在" + archName + "架构," + systemtype + "系统类型上安装go工具:" + '\n'; - try { - await goplsInstall(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - await dlvInstall(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - await goOutLineInstall(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - resolve([installToolsMessage, codeProcess]) - } catch (error) { - console.log("Go工具安裝失败:", error) - } - } - } else { - installToolsMessage = "正在" + archName + "架构," + systemtype + "系统类型上安装go版本为" + goVersion + "的工具:" + '\n'; - switch (goVersion) { - case '1.15': - console.log("正在", archName, "架构,", systemtype, "系统类型上安装go版本为", goVersion, "的工具:") - try { - await gopls095Install(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - await goOutLineInstall(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - resolve([installToolsMessage, codeProcess]) - } catch (error) { - console.log("Go工具安裝失败:", error) - } - - return - case '1.14': - console.log("正在", archName, "架构,", systemtype, "系统类型上安装go版本为", goVersion, "的工具:") - try { - await gopls095Install(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - await goOutLineInstall(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - resolve([installToolsMessage, codeProcess]) - } catch (error) { - console.log("Go工具安裝失败:", error) - } - return - case '1.13': - console.log("正在", archName, "架构,", systemtype, "系统类型上安装go版本为", goVersion, "的工具:") - - try { - await gopls095Install(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - await goOutLineInstall(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - resolve([installToolsMessage, codeProcess]) - } catch (error) { - console.log("Go工具安裝失败:", error) - } - - return - default: - console.log("正在", archName, "架构,", systemtype, "系统类型上安装go工具:") - installToolsMessage = "正在" + archName + "架构," + systemtype + "系统类型上安装go工具" + '\n'; - try { - await goplsInstall(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - await goOutLineInstall(goPath) - .then(([results, code]) => { - installToolsMessage += results + '\n' - codeProcess += code - }) - .catch((error) => { - console.error(error); - }); - resolve([installToolsMessage, codeProcess]) - } catch (error) { - console.log("Go工具安裝失败:", error) - } - - } - - } - }) - - -} -//判断go路径是否存在 -function executableFileExists(filePath) { - let exists = true; - try { - exists = fs.statSync(filePath).isFile(); - if (exists) { - fs.accessSync(filePath, fs.constants.F_OK | fs.constants.X_OK); - } - } catch (e) { - exists = false; - } - return exists; -} -//下载gopls@0.9.5 -function gopls095Install(goPath) { - return new Promise((resolve, reject) => { - const ls = spawn(goPath, ["get", "-v", "golang.org/x/tools/gopls@v0.9.5"]); - ls.stderr.on('data', (data) => { console.error(`${data}`); }); - ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); - ls.on('close', (code) => { - console.log(`子进程退出码:${code}`); - if (code === 0) { - console.log("gopls@v0.9.5安装成功"); - resolve(["gopls@v0.9.5安装成功", code]); - - } else { - console.log("gopls@v0.9.5安装失败"); - resolve(["gopls@v0.9.5安装失败", code]); - } - }); - }) -} -//下载gopls -function goplsInstall(goPath) { - return new Promise((resolve, reject) => { - const ls = spawn(goPath, ["get", "-v", "golang.org/x/tools/gopls"]); - - ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); - - ls.stderr.on('data', (data) => { console.error(`${data}`); }); - - ls.on('close', (code) => { - console.log(`子进程退出码:${code}`); - if (code === 0) { - console.log("gopls安装成功"); - resolve(["gopls安装成功", code]); - } else { - console.log("gopls安装失败"); - resolve(["gopls安装失败", code]); - } - }); - }) - -} -//下载dlv@1.6.0 -function dlv160Install(goPath) { - return new Promise((resolve, reject) => { - const ls = spawn(goPath, ["get", "-v", "github.com/go-delve/delve/cmd/dlv@v1.6.0"]); - - ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); - - ls.stderr.on('data', (data) => { console.error(`${data}`); }); - - ls.on('close', (code) => { - console.log(`子进程退出码:${code}`); - if (code === 0) { - console.log("dlv@v1.6.0安装成功"); - resolve(["dlv@v1.6.0安装成功", code]); - } else { - console.log("dlv@v1.6.0安装失败"); - resolve(["dlv@v1.6.0安装失败", code]); - } - }); - }) - -} -//下载dlv@1.6.1 -function dlv161Install(goPath) { - return new Promise((resolve, reject) => { - const ls = spawn(goPath, ["get", "-v", "github.com/go-delve/delve/cmd/dlv@v1.6.1"]); - - ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); - - ls.stderr.on('data', (data) => { console.error(`${data}`); }); - - ls.on('close', (code) => { - console.log(`子进程退出码:${code}`); - if (code === 0) { - console.log("dlv@v1.6.1安装成功"); - resolve(["dlv@v1.6.1安装成功", code]) - } else { - console.log("dlv@v1.6.1安装失败"); - resolve(["dlv@v1.6.1安装失败", code]) - } - }); - }) - -} -//下载dlv -function dlvInstall(goPath) { - return new Promise((resolve, reject) => { - const ls = spawn(goPath, ["get", "-v", "github.com/go-delve/delve/cmd/dlv"]); - - ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); - - ls.stderr.on('data', (data) => { console.error(`${data}`); }); - - ls.on('close', (code) => { - console.log(`子进程退出码:${code}`); - if (code === 0) { - console.log("dlv安装成功"); - resolve(["dlv安装成功", code]) - } else { - console.log("dlv安装失败"); - resolve(["dlv安装失败", code]) - } - }); - }) -} - -//下载go-outline -function goOutLineInstall(goPath) { - return new Promise((resolve, reject) => { - const ls = spawn(goPath, ["get", "-v", "github.com/ramya-rao-a/go-outline"]); - - ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); - - ls.stderr.on('data', (data) => { console.error(`${data}`); }); - - ls.on('close', (code) => { - console.log(`子进程退出码:${code}`); - if (code === 0) { - console.log("go-outline安装成功"); - resolve(["go-outline安装成功", code]) - } else { - console.log("go-outline安装失败"); - resolve(["go-outline安装失败", code]) - } - }); - }) -} -//获取go路径以及版本号 -function getGoPath() { - const p = ""; - const defaultPathsForGo = - process.platform === 'win32' - ? ['C:\\Program Files\\Go\\bin\\go.exe', 'C:\\Program Files (x86)\\Go\\bin\\go.exe'] - : ['/usr/bin/go', '/bin/go', '/usr/local/go/bin/go', '/usr/local/bin/go', '/usr/lib/go-1.15/bin/go', '/usr/lib/go-1.14/bin/go', '/usr/lib/go-1.13/bin/go']; - for (const p of defaultPathsForGo) { - if (executableFileExists(p)) { - - return p; - } - - } - return p; -} -//设置go代理 -function setting(goPath) { - process.env.GO111MODULE = "on"; - process.env.GOPROXY = "https://goproxy.cn,direct"; - exec(`${goPath} env -w GO111MODULE=on && ${goPath} env -w GOPROXY=https://goproxy.cn,direct`, (error, stdout, stderr) => { - - if (error) { - console.error(`exec error: ${error}`); - return; - } - // console.log(`stdout: ${stdout}`); - console.log("Go代理设置成功!") - // console.log(`stderr: ${stderr}`); - }) - -} -//检查系统类型 -function checkSystemType() { - let cmdResult = spawnSync('ls', ['/usr/bin/dpkg']); - if (cmdResult.stdout !== null) { - let libcResult = spawnSync('dpkg-query', ['-W', 'libc6']); - - if (libcResult.stdout !== null) { - if (libcResult.stdout.toString() !== '') { - return 'deb'; - } - - } - } - cmdResult = spawnSync('ls', ['/usr/bin/rpm']); - if (cmdResult.stdout !== null) { - let libcResult = spawnSync('rpm', ['-qa', 'glibc']); - if (libcResult.stdout !== null) { - if (libcResult.stdout.toString() !== '') { - return 'rpm'; - } - - } - } - return 'unknown'; - -} - - -async function main() { - return new Promise((resolve, reject) => { - let goVersion = ""; - let goPath = ""; - const archName = os.arch(); - goPath = getGoPath(); - if (goPath === '') { - resolve("go路径找不到"); - return; - } - if (goPath.indexOf('go-1.15') !== -1) { - goVersion = "1.15"; - } else if (goPath.indexOf('go-1.14') !== -1) { - goVersion = "1.14"; - } else if (goPath.indexOf('go-1.13') !== -1) { - goVersion = "1.13"; - } else { - - let cmdResult = spawnSync('go', ['version']); - if (cmdResult && cmdResult.stdout !== null && cmdResult.stdout.toString().indexOf("1.13") !== -1) { - goVersion = '1.13'; - } - } - const systemtype = checkSystemType(); - - - let p = new Promise((resolve, reject) => { - setting(goPath) - setTimeout(() => { - resolve(); - }, 1000); - - // reject("dddd"); - }) - p.then(async (value) => { - if (goPath !== "") { - GoToolsInstall(archName, goVersion, goPath, systemtype) - .then(([results, code]) => { - resolve([results, code]) - }) - } else { - console.log("找不到go路径") - } - - - }) - }) - -} -// main(); -module.exports = { - main -} diff --git a/src/vs/platform/issue/electron-main/installWizard/config/os_classify_script-0.0.1.js b/src/vs/platform/issue/electron-main/installWizard/config/os_classify_script-0.0.1.js deleted file mode 100644 index 0299c41b..00000000 --- a/src/vs/platform/issue/electron-main/installWizard/config/os_classify_script-0.0.1.js +++ /dev/null @@ -1,141 +0,0 @@ -const os = require('os'); -const fs = require('fs'); -var os_arch; //arch x86_64 -var os_org; //Kylin -var os_type; // Desktop Server -var os_release;// eg:2203 -var os_version_id; // V10 -var os_sp;//sp -var os_custom; //hwe -var pretty_name; -//检查系统架构 -function getArch() { - const arch = os.arch(); - let res = ''; - switch (arch) { - case 'x64': - case 'x86': - case "x86_64": res = 'x86'; break; - case 'arm': - case 'arm64': - case 'aarch64': res = 'arm'; break; - case 'loongarch': res = 'loongarch'; break; - default: res = "other"; - } - return res; -} - -function returnosinfo() { - if (os_arch == 'x86' && os_org == 'openkylin' && os_type == 'desktop') { - return "x86_openkylin_desktop"; - } - return "undefined" -} - -function getosinfo() { - const kyinfoPath = '/etc/.kyinfo'; - const osReleasePath = '/etc/os-release'; - //1、架构 - //2、是否是麒麟系统 - //3、是桌面系统还是服务器系统 - //4、是否是V10 - //5、是否带sp,是sp几 - //6、小版本号 - //7、定制版字符 - - var dist_id; - var os_info - os_arch = getArch(); - /*分类型进行处理 - 1.存在.kyinfo的系统 ,取值dist_id 中 架构之前的信息 - 2.不在.kyinfo的系统,但是存在os-release 的kylin系统 - 3.不是kylin的系统,但是存在os-release - 目前可以先做第一和第二种分类 - */ - let data; - let releasedata; - if (fs.existsSync(kyinfoPath) && fs.existsSync(osReleasePath)) { - os_org = "kylin"; - try { - let milestone; - let dist_id; - let tmpstr; - let version_id; - data = fs.readFileSync(kyinfoPath, 'utf8'); - releasedata = fs.readFileSync(osReleasePath, 'utf8'); - // 使用 split 方法将文件内容分割成行数组 - const lines = data.split('\n'); - // 遍历行数组 获取系统架构 - lines.forEach((line) => { - if (line.startsWith("milestone=")) { - milestone = line.slice(10).toLocaleLowerCase(); - } else if (line.startsWith("dist_id=")) { - dist_id = line.slice(8).toLocaleLowerCase(); - } - });//end lines - - const releasedatalines = releasedata.split('\n'); - releasedatalines.forEach((line) => { - if (line.startsWith("PRETTY_NAME=")) { - pretty_name = line.slice(12).toLocaleLowerCase().replace(/"/g, ''); - } else if (line.startsWith("VERSION_ID=")) { - version_id = line.slice(11).toLocaleLowerCase().replace(/"/g, ''); - } - }); - if (version_id) { - os_version_id = version_id; - } - os_type = dist_id.includes('desktop') ? "desktop" : "server"; - if (milestone.indexOf('release')) { - os_release = milestone.slice(milestone.indexOf('release') + 8); - } - - if (dist_id.includes('edu')) { - os_custom = 'edu'; - } else { - os_custom = 'gen'; - } - if (dist_id.includes('hwe')) { - os_custom += 'hwe'; - } - if (dist_id.includes('gfb')) { - l - os_custom += 'gfb' - } - } catch (err) { - os_info = ""; - } - }else if(fs.existsSync(osReleasePath)){ - try { - let milestone; - let dist_id; - let tmpstr; - let version_id; - releasedata = fs.readFileSync(osReleasePath, 'utf8'); - const releasedatalines = releasedata.split('\n'); - releasedatalines.forEach((line) => { - if (line.startsWith("PRETTY_NAME=")) { - pretty_name = line.slice(12).toLocaleLowerCase().replace(/"/g, ''); - } else if (line.startsWith("VERSION_ID=")) { - version_id = line.slice(11).toLocaleLowerCase().replace(/"/g, ''); - }else if (line.startsWith("ID=")) { - os_org = line.slice(3).toLocaleLowerCase().replace(/"/g, ''); - }else if (line.startsWith("VERSION_CODENAME=")) { - os_custom = line.slice(17).toLocaleLowerCase().replace(/"/g, ''); - } - }); - if (version_id) { - os_version_id = version_id; - } - if(pretty_name.includes('openkylin')) - os_type ="desktop"; - } catch (err) { - os_info = ""; - } - } - os_info = returnosinfo(); - return os_info; -} - -module.exports = { getosinfo } - diff --git a/src/vs/platform/issue/electron-main/installWizard/config/python3_config-0.0.1.sh b/src/vs/platform/issue/electron-main/installWizard/config/python3_config-0.0.1.sh deleted file mode 100644 index bb463a07..00000000 --- a/src/vs/platform/issue/electron-main/installWizard/config/python3_config-0.0.1.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -echo "exec \"pip3 install pylint -i https://pypi.tuna.tsinghua.edu.cn/simple\"" -pip3 install pylint -i https://pypi.tuna.tsinghua.edu.cn/simple \ No newline at end of file