Skip to content

Commit a1ea480

Browse files
committed
Some more changes
1 parent b5a421e commit a1ea480

File tree

7 files changed

+35
-167
lines changed

7 files changed

+35
-167
lines changed

src/CSharpExtDownloader.ts renamed to src/InstallRuntimeDependencies.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,20 @@
66
import { PlatformInformation } from './platform';
77
import { PackageInstallation, LogPlatformInfo, InstallationSuccess } from './omnisharp/loggingEvents';
88
import { EventStream } from './EventStream';
9-
import { downloadAndInstallPackages1 } from './packageManager/PackageManager';
9+
import { downloadAndInstallPackages } from './packageManager/downloadAndInstallPackages';
1010
import { NetworkSettingsProvider } from './NetworkSettings';
1111
import { getRuntimeDependenciesPackages } from './tools/RuntimeDependencyPackageUtils';
12-
import { AbsolutePathPackage } from './packageManager/AbsolutePathPackage';
13-
import { filterPackages } from './packageManager/PackageFilterer';
12+
import { getAbsolutePathPackagesToInstall } from './packageManager/getAbsolutePathPackagesToInstall';
1413

1514
export async function installRuntimeDependencies(packageJSON: any, extensionPath: string, networkSettingsProvider: NetworkSettingsProvider, eventStream: EventStream, platformInfo: PlatformInformation): Promise<boolean>{
1615
let runTimeDependencies = getRuntimeDependenciesPackages(packageJSON);
17-
let absolutePathPackages = runTimeDependencies.map(pkg => AbsolutePathPackage.getAbsolutePathPackage(pkg, extensionPath));
18-
let packagesToInstall = await filterPackages(absolutePathPackages, platformInfo);
16+
let packagesToInstall = await getAbsolutePathPackagesToInstall(runTimeDependencies, platformInfo, extensionPath);
1917
if (packagesToInstall && packagesToInstall.length > 0) {
2018
eventStream.post(new PackageInstallation("C# dependencies"));
2119
try {
2220
// Display platform information and RID
2321
eventStream.post(new LogPlatformInfo(platformInfo));
24-
await downloadAndInstallPackages1(packagesToInstall, networkSettingsProvider, eventStream);
22+
await downloadAndInstallPackages(packagesToInstall, networkSettingsProvider, eventStream);
2523
eventStream.post(new InstallationSuccess());
2624
return true;
2725
}

src/main.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import { CSharpExtensionId } from './constants/CSharpExtensionId';
3838
import { OpenURLObserver } from './observers/OpenURLObserver';
3939
import { activateRazorExtension } from './razor/razor';
4040
import { RazorLoggerObserver } from './observers/RazorLoggerObserver';
41-
import { installRuntimeDependencies } from './CSharpExtDownloader';
41+
import { installRuntimeDependencies } from './InstallRuntimeDependencies';
4242

4343
export async function activate(context: vscode.ExtensionContext): Promise<CSharpExtensionExports> {
4444

src/omnisharp/OmnisharpDownloader.ts

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ import { PlatformInformation } from '../platform';
88
import { PackageInstallation, LogPlatformInfo, InstallationSuccess, InstallationFailure, LatestBuildDownloadStart } from './loggingEvents';
99
import { EventStream } from '../EventStream';
1010
import { NetworkSettingsProvider } from '../NetworkSettings';
11-
import { DownloadAndInstallPackages } from '../packageManager/PackageManager';
11+
import { downloadAndInstallPackages } from '../packageManager/downloadAndInstallPackages';
1212
import { DownloadFile } from '../packageManager/FileDownloader';
13+
import { getRuntimeDependenciesPackages } from '../tools/RuntimeDependencyPackageUtils';
14+
import { getAbsolutePathPackagesToInstall } from '../packageManager/getAbsolutePathPackagesToInstall';
1315

1416
export class OmnisharpDownloader {
1517

@@ -22,21 +24,15 @@ export class OmnisharpDownloader {
2224
}
2325

2426
public async DownloadAndInstallOmnisharp(version: string, serverUrl: string, installPath: string) {
25-
this.eventStream.post(new PackageInstallation(`OmniSharp Version = ${version}`));
26-
let installationStage = '';
27-
28-
try {
27+
let runtimeDependencies = getRuntimeDependenciesPackages(this.packageJSON);
28+
let omniSharpPackages = GetPackagesFromVersion(version, runtimeDependencies, serverUrl, installPath);
29+
let packagesToInstall = await getAbsolutePathPackagesToInstall(omniSharpPackages, this.platformInfo, this.extensionPath);
30+
if (packagesToInstall && packagesToInstall.length > 0) {
31+
this.eventStream.post(new PackageInstallation(`OmniSharp Version = ${version}`));
2932
this.eventStream.post(new LogPlatformInfo(this.platformInfo));
30-
installationStage = 'getPackageInfo';
31-
let packages = GetPackagesFromVersion(version, this.packageJSON.runtimeDependencies, serverUrl, installPath);
32-
installationStage = 'downloadAndInstallPackages';
33-
await DownloadAndInstallPackages(packages, this.networkSettingsProvider, this.platformInfo, this.eventStream, this.extensionPath);
33+
await downloadAndInstallPackages(packagesToInstall, this.networkSettingsProvider, this.eventStream);
3434
this.eventStream.post(new InstallationSuccess());
3535
}
36-
catch (error) {
37-
this.eventStream.post(new InstallationFailure(installationStage, error));
38-
throw error;// throw the error up to the server
39-
}
4036
}
4137

4238
public async GetLatestVersion(serverUrl: string, latestVersionFileServerPath: string): Promise<string> {

src/packageManager/PackageManager.ts renamed to src/packageManager/downloadAndInstallPackages.ts

Lines changed: 3 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3,63 +3,21 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { PlatformInformation } from "../platform";
7-
import { Package } from './Package';
86
import { PackageError } from './PackageError';
97
import { NestedError } from "../NestedError";
108
import { DownloadFile } from './FileDownloader';
119
import { InstallZip } from './ZipInstaller';
1210
import { EventStream } from '../EventStream';
1311
import { NetworkSettingsProvider } from "../NetworkSettings";
14-
import { filterPackages } from "./PackageFilterer";
1512
import { AbsolutePathPackage } from "./AbsolutePathPackage";
1613
import { touchInstallFile, InstallFileType, deleteInstallFile, installFileExists } from "../common";
1714
import { InstallationFailure } from "../omnisharp/loggingEvents";
1815
import { mkdirpSync } from "fs-extra";
1916
import { PackageInstallStart } from "../omnisharp/loggingEvents";
2017

21-
export async function DownloadAndInstallPackages(packages: Package[], provider: NetworkSettingsProvider, platformInfo: PlatformInformation, eventStream: EventStream, extensionPath: string): Promise<void> {
22-
let absolutePathPackages = packages.map(pkg => AbsolutePathPackage.getAbsolutePathPackage(pkg, extensionPath));
23-
let filteredPackages = await filterPackages(absolutePathPackages, platformInfo);
24-
if (filteredPackages) {
25-
eventStream.post(new PackageInstallStart());
26-
for (let pkg of filteredPackages) {
27-
let installationStage = "touchBeginFile";
28-
try {
29-
mkdirpSync(pkg.installPath.value);
30-
await touchInstallFile(pkg.installPath, InstallFileType.Begin);
31-
installationStage = 'downloadAndInstallPackages';
32-
let buffer = await DownloadFile(pkg.description, eventStream, provider, pkg.url, pkg.fallbackUrl);
33-
await InstallZip(buffer, pkg.description, pkg.installPath, pkg.binaries, eventStream);
34-
installationStage = 'touchLockFile';
35-
await touchInstallFile(pkg.installPath, InstallFileType.Lock);
36-
}
37-
catch (error) {
38-
eventStream.post(new InstallationFailure(installationStage, error));
39-
if (error instanceof NestedError) {
40-
let packageError = new PackageError(error.message, pkg, error.err);
41-
eventStream.post(new InstallationFailure(installationStage, packageError));
42-
throw packageError;
43-
}
44-
else {
45-
eventStream.post(new InstallationFailure(installationStage, error));
46-
throw error;
47-
}
48-
}
49-
finally {
50-
try {
51-
if (installFileExists(pkg.installPath, InstallFileType.Begin)) {
52-
await deleteInstallFile(pkg.installPath, InstallFileType.Begin);
53-
}
54-
}
55-
catch (error) { }
56-
}
57-
}
58-
}
59-
}
60-
61-
export async function downloadAndInstallPackages1(packages: AbsolutePathPackage[], provider: NetworkSettingsProvider, eventStream: EventStream) {
18+
export async function downloadAndInstallPackages(packages: AbsolutePathPackage[], provider: NetworkSettingsProvider, eventStream: EventStream) {
6219
if (packages) {
20+
eventStream.post(new PackageInstallStart());
6321
for (let pkg of packages) {
6422
let installationStage = "touchBeginFile";
6523
try {
@@ -85,7 +43,7 @@ export async function downloadAndInstallPackages1(packages: AbsolutePathPackage[
8543
}
8644
finally {
8745
try {
88-
if (installFileExists(pkg.installPath, InstallFileType.Begin)) {
46+
if (await installFileExists(pkg.installPath, InstallFileType.Begin)) {
8947
await deleteInstallFile(pkg.installPath, InstallFileType.Begin);
9048
}
9149
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
import { PlatformInformation } from "../platform";
7+
import { AbsolutePathPackage } from "./AbsolutePathPackage";
8+
import { filterPackages } from "./PackageFilterer";
9+
import { Package } from "./Package";
10+
11+
export async function getAbsolutePathPackagesToInstall(packages: Package[], platformInfo: PlatformInformation, extensionPath: string): Promise<AbsolutePathPackage[]> {
12+
let absolutePathPackages = packages.map(pkg => AbsolutePathPackage.getAbsolutePathPackage(pkg, extensionPath));
13+
return filterPackages(absolutePathPackages, platformInfo);
14+
}

tasks/offlinePackagingTasks.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,11 @@ import { EventStream } from '../src/EventStream';
1818
import { getPackageJSON } from '../tasks/packageJson';
1919
import { Logger } from '../src/logger';
2020
import { PlatformInformation } from '../src/platform';
21-
import { DownloadAndInstallPackages } from '../src/packageManager/PackageManager';
21+
import { downloadAndInstallPackages } from '../src/packageManager/downloadAndInstallPackages';
2222
import NetworkSettings from '../src/NetworkSettings';
2323
import { commandLineOptions } from '../tasks/commandLineArguments';
2424
import { getRuntimeDependenciesPackages } from '../src/tools/RuntimeDependencyPackageUtils';
25+
import { getAbsolutePathPackagesToInstall } from '../src/packageManager/getAbsolutePathPackagesToInstall';
2526

2627
gulp.task('vsix:offline:package', async () => {
2728
del.sync(vscodeignorePath);
@@ -90,8 +91,9 @@ async function install(platformInfo: PlatformInformation, packageJSON: any) {
9091
eventStream.subscribe(stdoutObserver.post);
9192
const debuggerUtil = new debugUtil.CoreClrDebugUtil(path.resolve('.'));
9293
let runTimeDependencies = getRuntimeDependenciesPackages(packageJSON);
94+
let packagesToInstall = await getAbsolutePathPackagesToInstall(runTimeDependencies, platformInfo, codeExtensionPath);
9395
let provider = () => new NetworkSettings(undefined, undefined);
94-
await DownloadAndInstallPackages(runTimeDependencies, provider, platformInfo, eventStream, codeExtensionPath);
96+
await downloadAndInstallPackages(packagesToInstall, provider, eventStream);
9597
await debugUtil.CoreClrDebugUtil.writeEmptyFile(debuggerUtil.installCompleteFilePath());
9698
}
9799

test/unitTests/Packages/PackageManager.test.ts

Lines changed: 0 additions & 100 deletions
This file was deleted.

0 commit comments

Comments
 (0)