diff options
author | 2023-09-12 03:37:09 -0700 | |
---|---|---|
committer | 2023-09-12 03:37:09 -0700 | |
commit | a8e4722bd1cd1ee71615678b4f0a3d2a6297c3f1 (patch) | |
tree | 1498a2fb1b17b92a8ec2e76be7262f7f17fe5c5c /src/install/install.zig | |
parent | 6dcdd2026a157e0ec622559c603b86ddd3103dbf (diff) | |
download | bun-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.zig | 10 |
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 => {}, |