Skip to content

Commit ca2c7c5

Browse files
committed
Cleaning up the rush temp folder discovery logic.
1 parent 5ffabbd commit ca2c7c5

2 files changed

Lines changed: 19 additions & 26 deletions

File tree

apps/rush-lib/src/scripts/install-run-rush.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ import * as fs from 'fs';
1515

1616
import {
1717
installAndRun,
18-
ensureAndResolveRushTempFolder,
18+
findRushJsonFolder,
1919
RUSH_JSON_FILENAME,
2020
runWithErrorAndStatusCode
2121
} from './install-run';
2222

2323
const PACKAGE_NAME: string = '@microsoft/rush';
2424

2525
function getRushVersion(): string {
26-
const rushJsonFolder: string = ensureAndResolveRushTempFolder();
26+
const rushJsonFolder: string = findRushJsonFolder();
2727
const rushJsonPath: string = path.join(rushJsonFolder, RUSH_JSON_FILENAME);
2828
try {
2929
const rushJsonContents: string = fs.readFileSync(rushJsonPath, 'UTF-8');

apps/rush-lib/src/scripts/install-run.ts

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function parsePackageSpecifier(rawPackageSpecifier: string): IPackageSpecifier {
5050
/**
5151
* Resolve a package specifier to a static version
5252
*/
53-
function resolvePackageVersion(rushTempFolder: string, { name, version }: IPackageSpecifier): string {
53+
function resolvePackageVersion(rushCommonFolder: string, { name, version }: IPackageSpecifier): string {
5454
if (!version) {
5555
version = '*'; // If no version is specified, use the latest version
5656
}
@@ -62,7 +62,8 @@ function resolvePackageVersion(rushTempFolder: string, { name, version }: IPacka
6262
} else {
6363
// version resolves to
6464
try {
65-
copyNpmrcIfItExists(rushTempFolder, rushTempFolder);
65+
const rushTempFolder: string = ensureAndResolveFolder(rushCommonFolder, 'temp');
66+
copyNpmrcIfItExists(rushCommonFolder, rushTempFolder);
6667
const npmPath: string = getNpmPath();
6768

6869
// This returns something that looks like:
@@ -163,14 +164,6 @@ export function findRushJsonFolder(): string {
163164
return _rushJsonFolder;
164165
}
165166

166-
/**
167-
* Resolve and ensure the <repo>/common/temp folder
168-
*/
169-
export function ensureAndResolveRushTempFolder(): string {
170-
const rushJsonFolder: string = findRushJsonFolder();
171-
return ensureAndResolveFolder(rushJsonFolder, 'common', 'temp');
172-
}
173-
174167
/**
175168
* Create missing directories under the specified base directory, and return the resolved directory.
176169
*
@@ -253,7 +246,7 @@ function isPackageAlreadyInstalled(packageInstallFolder: string): boolean {
253246
* -
254247
* - node_modules
255248
*/
256-
function cleanInstallFolder(rushTempFolder: string, packageInstallFolder: string): void {
249+
function cleanInstallFolder(rushCommonFolder: string, packageInstallFolder: string): void {
257250
try {
258251
const flagFile: string = path.resolve(packageInstallFolder, INSTALLED_FLAG_FILENAME);
259252
if (fs.existsSync(flagFile)) {
@@ -268,7 +261,8 @@ function cleanInstallFolder(rushTempFolder: string, packageInstallFolder: string
268261
const nodeModulesFolder: string = path.resolve(packageInstallFolder, NODE_MODULES_FOLDER_NAME);
269262
if (fs.existsSync(nodeModulesFolder)) {
270263
const rushRecyclerFolder: string = ensureAndResolveFolder(
271-
rushTempFolder,
264+
rushCommonFolder,
265+
'temp',
272266
'rush-recycler',
273267
`install-run-${Date.now().toString()}`
274268
);
@@ -351,23 +345,21 @@ export function installAndRun(
351345
packageName: string,
352346
packageVersion: string,
353347
packageBinName: string,
354-
packageBinArgs: string[],
355-
rushTempFolder: string | undefined = undefined
348+
packageBinArgs: string[]
356349
): number {
357-
if (!rushTempFolder) {
358-
rushTempFolder = ensureAndResolveRushTempFolder();
359-
}
360-
350+
const rushJsonFolder: string = findRushJsonFolder();
351+
const rushCommonFolder: string = path.join(rushJsonFolder, 'common');
361352
const packageInstallFolder: string = ensureAndResolveFolder(
362-
rushTempFolder,
353+
rushCommonFolder,
354+
'temp',
363355
'install-run',
364356
`${packageName}@${packageVersion}`
365357
);
366358

367359
if (!isPackageAlreadyInstalled(packageInstallFolder)) {
368360
// The package isn't already installed
369-
cleanInstallFolder(rushTempFolder, packageInstallFolder);
370-
copyNpmrcIfItExists(rushTempFolder, packageInstallFolder);
361+
cleanInstallFolder(rushCommonFolder, packageInstallFolder);
362+
copyNpmrcIfItExists(rushCommonFolder, packageInstallFolder);
371363
createPackageJson(packageInstallFolder, packageName, packageVersion);
372364
installPackage(packageInstallFolder, packageName, packageVersion);
373365
writeFlagFile(packageInstallFolder);
@@ -425,17 +417,18 @@ function run(): void {
425417
}
426418

427419
runWithErrorAndStatusCode(() => {
428-
const rushTempFolder: string = ensureAndResolveRushTempFolder();
420+
const rushJsonFolder: string = findRushJsonFolder();
421+
const rushCommonFolder: string = ensureAndResolveFolder(rushJsonFolder, 'common');
429422

430423
const packageSpecifier: IPackageSpecifier = parsePackageSpecifier(rawPackageSpecifier);
431424
const name: string = packageSpecifier.name;
432-
const version: string = resolvePackageVersion(rushTempFolder, packageSpecifier);
425+
const version: string = resolvePackageVersion(rushCommonFolder, packageSpecifier);
433426

434427
if (packageSpecifier.version !== version) {
435428
console.log(`Resolved to ${name}@${version}`);
436429
}
437430

438-
return installAndRun(name, version, packageBinName, packageBinArgs, rushTempFolder);
431+
return installAndRun(name, version, packageBinName, packageBinArgs);
439432
});
440433
}
441434

0 commit comments

Comments
 (0)