aboutsummaryrefslogtreecommitdiff
path: root/src/install/install.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-09-12 03:37:09 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-09-12 03:37:09 -0700
commita8e4722bd1cd1ee71615678b4f0a3d2a6297c3f1 (patch)
tree1498a2fb1b17b92a8ec2e76be7262f7f17fe5c5c /src/install/install.zig
parent6dcdd2026a157e0ec622559c603b86ddd3103dbf (diff)
downloadbun-jarred/fix-issue-with-tsconfig-run.tar.gz
bun-jarred/fix-issue-with-tsconfig-run.tar.zst
bun-jarred/fix-issue-with-tsconfig-run.zip
Check that the pid matchesjarred/fix-issue-with-tsconfig-run
Diffstat (limited to 'src/install/install.zig')
-rw-r--r--src/install/install.zig10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/install/install.zig b/src/install/install.zig
index bf6422cc7..30bedef0a 100644
--- a/src/install/install.zig
+++ b/src/install/install.zig
@@ -1246,7 +1246,15 @@ const PackageInstall = struct {
std.os.mkdirat(destination_dir_.dir.fd, entry.path, 0o755) catch {};
},
.file => {
- try std.os.linkat(entry.dir.dir.fd, entry.basename, destination_dir_.dir.fd, entry.path, 0);
+ std.os.linkat(entry.dir.dir.fd, entry.basename, destination_dir_.dir.fd, entry.path, 0) catch |err| {
+ if (err != error.PathAlreadyExists) {
+ return err;
+ }
+
+ std.os.unlinkat(destination_dir_.dir.fd, entry.path, 0) catch {};
+ try std.os.linkat(entry.dir.dir.fd, entry.basename, destination_dir_.dir.fd, entry.path, 0);
+ };
+
real_file_count += 1;
},
else => {},