diff options
author | 2021-11-05 01:15:24 -0700 | |
---|---|---|
committer | 2021-11-05 01:15:24 -0700 | |
commit | d4c1bf6c675e2e8d7eefa78b744f83515da8aaee (patch) | |
tree | 8c5fffbf322967026bddd3f6a6233b9d64f340ec /src | |
parent | 3ef55d10ae43254e32afe8c4cec3391edbce9b9a (diff) | |
download | bun-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.zig | 20 |
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(©_script, "yarn --prod"); + try std.testing.expectEqualStrings(copy_script.items, "yarn --prod"); + } + + { + copy_script.clearRetainingCapacity(); + try RunCommand.replacePackageManagerRun(©_script, "yarn -prod"); + try std.testing.expectEqualStrings(copy_script.items, "yarn -prod"); + } + + { + copy_script.clearRetainingCapacity(); try RunCommand.replacePackageManagerRun(©_script, "yarn"); try std.testing.expectEqualStrings(copy_script.items, "yarn"); } |