From 90947a806111f9044a22e368634102b452a39664 Mon Sep 17 00:00:00 2001 From: Felix Angelov Date: Thu, 27 Mar 2025 16:02:38 -0500 Subject: [PATCH] fix(shorebird_cli): never run `patch.exe` in shell (#3021) --- .../lib/src/executables/patch_executable.dart | 8 +++++++- .../executables/patch_executable_test.dart | 19 ++++++++++++++++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/packages/shorebird_cli/lib/src/executables/patch_executable.dart b/packages/shorebird_cli/lib/src/executables/patch_executable.dart index 56ee9f73..5a602b9c 100644 --- a/packages/shorebird_cli/lib/src/executables/patch_executable.dart +++ b/packages/shorebird_cli/lib/src/executables/patch_executable.dart @@ -43,7 +43,13 @@ class PatchExecutable { ); final diffArguments = [releaseArtifactPath, patchArtifactPath, diffPath]; - final result = await process.run(diffExecutable, diffArguments); + final result = await process.run( + diffExecutable, + diffArguments, + // Never run in shell because we always have a fully resolved + // executable path. + runInShell: false, + ); var messageDetails = ''; diff --git a/packages/shorebird_cli/test/src/executables/patch_executable_test.dart b/packages/shorebird_cli/test/src/executables/patch_executable_test.dart index 8431722f..d6b941b8 100644 --- a/packages/shorebird_cli/test/src/executables/patch_executable_test.dart +++ b/packages/shorebird_cli/test/src/executables/patch_executable_test.dart @@ -40,7 +40,11 @@ void main() { platform = MockPlatform(); when( - () => shorebirdProcess.run(any(that: endsWith('patch')), any()), + () => shorebirdProcess.run( + any(that: endsWith('patch')), + any(), + runInShell: any(named: 'runInShell'), + ), ).thenAnswer((invocation) async { final args = invocation.positionalArguments[1] as List; final diffPath = args[2]; @@ -85,6 +89,7 @@ void main() { endsWith('diff.patch'), ]), ), + runInShell: false, ), ).called(1); }); @@ -97,7 +102,11 @@ void main() { when(() => patchProcessResult.stdout).thenReturn(stdout); when( - () => shorebirdProcess.run(any(that: endsWith('patch')), any()), + () => shorebirdProcess.run( + any(that: endsWith('patch')), + any(), + runInShell: any(named: 'runInShell'), + ), ).thenAnswer((_) async => patchProcessResult); await expectLater( @@ -129,7 +138,11 @@ void main() { when(() => patchProcessResult.stdout).thenReturn(stdout); when( - () => shorebirdProcess.run(any(that: endsWith('patch')), any()), + () => shorebirdProcess.run( + any(that: endsWith('patch')), + any(), + runInShell: any(named: 'runInShell'), + ), ).thenAnswer((_) async => patchProcessResult); });