aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-11-05 01:15:24 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-11-05 01:15:24 -0700
commitd4c1bf6c675e2e8d7eefa78b744f83515da8aaee (patch)
tree8c5fffbf322967026bddd3f6a6233b9d64f340ec /src
parent3ef55d10ae43254e32afe8c4cec3391edbce9b9a (diff)
downloadbun-d4c1bf6c675e2e8d7eefa78b744f83515da8aaee.tar.gz
bun-d4c1bf6c675e2e8d7eefa78b744f83515da8aaee.tar.zst
bun-d4c1bf6c675e2e8d7eefa78b744f83515da8aaee.zip
[bun run] Fix bug with yarn getting replaced for `-` commands
Diffstat (limited to 'src')
-rw-r--r--src/cli/run_command.zig20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/cli/run_command.zig b/src/cli/run_command.zig
index 968866f49..cfe545b01 100644
--- a/src/cli/run_command.zig
+++ b/src/cli/run_command.zig
@@ -94,6 +94,14 @@ pub const RunCommand = struct {
continue;
}
+ if (strings.startsWith(yarn_cmd, "-")) {
+ // Skip the rest of the command
+ entry_i += "yarn ".len + yarn_cmd.len;
+ try copy_script.appendSlice("yarn ");
+ try copy_script.appendSlice(yarn_cmd);
+ continue;
+ }
+
// implicit yarn commands
if (std.mem.indexOfScalar(u64, yarn_commands, std.hash.Wyhash.hash(0, yarn_cmd)) == null) {
try copy_script.appendSlice("bun run");
@@ -889,6 +897,18 @@ test "replacePackageManagerRun" {
{
copy_script.clearRetainingCapacity();
+ try RunCommand.replacePackageManagerRun(&copy_script, "yarn --prod");
+ try std.testing.expectEqualStrings(copy_script.items, "yarn --prod");
+ }
+
+ {
+ copy_script.clearRetainingCapacity();
+ try RunCommand.replacePackageManagerRun(&copy_script, "yarn -prod");
+ try std.testing.expectEqualStrings(copy_script.items, "yarn -prod");
+ }
+
+ {
+ copy_script.clearRetainingCapacity();
try RunCommand.replacePackageManagerRun(&copy_script, "yarn");
try std.testing.expectEqualStrings(copy_script.items, "yarn");
}