Skip to content

Commit 907c19e

Browse files
committed
update
1 parent c4245b6 commit 907c19e

3 files changed

Lines changed: 12 additions & 14 deletions

File tree

src/spec-common/cliHost.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import * as path from 'path';
77
import * as net from 'net';
88
import * as os from 'os';
99

10-
import { readLocalFile, writeLocalFile, mkdirpLocal, isLocalFile, renameLocal, readLocalDir, isLocalFolder } from '../spec-utils/pfs';
10+
import { readLocalFile, writeLocalFile, mkdirpLocal, isLocalFile, renameLocal, readLocalDir, isLocalFolder, rmLocal, cpLocal } from '../spec-utils/pfs';
1111
import { URI } from 'vscode-uri';
1212
import { ExecFunction, getLocalUsername, plainExec, plainPtyExec, PtyExecFunction } from './commonUtils';
1313
import { Abort, Duplex, Sink, Source, SourceCallback } from 'pull-stream';
@@ -32,7 +32,9 @@ export interface CLIHost {
3232
isFolder(filepath: string): Promise<boolean>;
3333
readFile(filepath: string): Promise<Buffer>;
3434
writeFile(filepath: string, content: Buffer): Promise<void>;
35+
copyFile(oldPath: string, newPath: string): Promise<void>;
3536
rename(oldPath: string, newPath: string): Promise<void>;
37+
remove(filepath: string): Promise<void>;
3638
mkdirp(dirpath: string): Promise<void>;
3739
readDir(dirpath: string): Promise<string[]>;
3840
readDirWithTypes?(dirpath: string): Promise<[string, FileTypeBitmask][]>;
@@ -76,7 +78,9 @@ function createLocalCLIHostFromExecFunctions(localCwd: string, exec: ExecFunctio
7678
isFolder: isLocalFolder,
7779
readFile: readLocalFile,
7880
writeFile: writeLocalFile,
81+
copyFile: cpLocal,
7982
rename: renameLocal,
83+
remove: async (filepath) => rmLocal(filepath, { force: true }),
8084
mkdirp: async (dirpath) => {
8185
await mkdirpLocal(dirpath);
8286
},

src/spec-node/dockerfilePreprocessor.ts

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
import * as path from 'path';
77
import { DevContainerFromDockerComposeConfig, DevContainerFromDockerfileConfig } from '../spec-configuration/configuration';
88
import { ContainerError, toErrorText } from '../spec-common/errors';
9-
import { CLIHost, runCommandNoPty } from '../spec-common/commonUtils';
9+
import { CLIHost } from '../spec-common/cliHost';
10+
import { runCommandNoPty } from '../spec-common/commonUtils';
1011
import { Log, LogLevel, makeLog } from '../spec-utils/log';
1112

1213
function dockerfilePreprocessorToolDocs(): string {
@@ -54,17 +55,7 @@ export async function preprocessDockerExtensionFile(
5455
if (!await cliHost.isFile(stalePath)) {
5556
continue;
5657
}
57-
const cleanupCommand = cliHost.platform === 'win32'
58-
? { cmd: 'cmd', args: ['/d', '/s', '/c', `del /f /q "${stalePath}"`] }
59-
: { cmd: 'rm', args: ['-f', stalePath] };
60-
await runCommandNoPty({
61-
exec: cliHost.exec,
62-
cmd: cleanupCommand.cmd,
63-
args: cleanupCommand.args,
64-
cwd: workdirPath,
65-
env: cliHost.env,
66-
output: infoOutput,
67-
});
58+
await cliHost.remove(stalePath);
6859
}
6960

7061
// Strict contract: the CLI owns the final output path. Direct-transform
@@ -128,7 +119,8 @@ export async function preprocessDockerExtensionFile(
128119
}
129120

130121
if (generatedOutputPath !== outputPath) {
131-
await cliHost.rename(generatedOutputPath, outputPath);
122+
await cliHost.copyFile(generatedOutputPath, outputPath);
123+
await cliHost.remove(generatedOutputPath);
132124
}
133125

134126
infoOutput.write(`Preprocessed Dockerfile written to '${cliOutputPath}'`);

src/test/workspaceConfiguration.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ function createMockCLIHost(options: {
3535
throw new Error(`File not found: ${filepath}`);
3636
},
3737
writeFile: async () => { },
38+
copyFile: async () => { },
3839
rename: async () => { },
40+
remove: async () => { },
3941
mkdirp: async () => { },
4042
readDir: async () => [],
4143
getUsername: async () => 'test',

0 commit comments

Comments
 (0)