aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Alex Lam S.L <alexlamsl@gmail.com> 2023-08-31 03:35:28 +0300
committerGravatar GitHub <noreply@github.com> 2023-08-30 17:35:28 -0700
commit037463fc48a96cfdacb647ba44e021abd5e4769e (patch)
tree2c8f39f90e7ecb9c013981f26a494033a24b27c0 /src
parent04215e2f3a8c11d9e2b5f336eee40e6f7ebf11c9 (diff)
downloadbun-037463fc48a96cfdacb647ba44e021abd5e4769e.tar.gz
bun-037463fc48a96cfdacb647ba44e021abd5e4769e.tar.zst
bun-037463fc48a96cfdacb647ba44e021abd5e4769e.zip
[install] fix stale root life-cycle script in lockfile (#4411)
fixes #4319
Diffstat (limited to 'src')
-rw-r--r--src/install/install.zig25
1 files changed, 18 insertions, 7 deletions
diff --git a/src/install/install.zig b/src/install/install.zig
index ee23fa427..768113d35 100644
--- a/src/install/install.zig
+++ b/src/install/install.zig
@@ -7524,13 +7524,6 @@ pub const PackageManager = struct {
package_json_source,
Features.main,
);
- if (!root.scripts.filled) {
- maybe_root.scripts.enqueue(
- manager.lockfile,
- lockfile.buffers.string_bytes.items,
- strings.withoutTrailingSlash(Fs.FileSystem.instance.top_level_dir),
- );
- }
var mapping = try manager.lockfile.allocator.alloc(PackageID, maybe_root.dependencies.len);
@memset(mapping, invalid_package_id);
@@ -7565,6 +7558,8 @@ pub const PackageManager = struct {
new_dep.count(lockfile.buffers.string_bytes.items, *Lockfile.StringBuilder, builder);
}
+ maybe_root.scripts.count(lockfile.buffers.string_bytes.items, *Lockfile.StringBuilder, builder);
+
const off = @as(u32, @truncate(manager.lockfile.buffers.dependencies.items.len));
const len = @as(u32, @truncate(new_dependencies.len));
var packages = manager.lockfile.packages.slice();
@@ -7598,6 +7593,12 @@ pub const PackageManager = struct {
}
}
+ manager.lockfile.packages.items(.scripts)[0] = maybe_root.scripts.clone(
+ lockfile.buffers.string_bytes.items,
+ *Lockfile.StringBuilder,
+ builder,
+ );
+
builder.clamp();
// Split this into two passes because the below may allocate memory or invalidate pointers
@@ -7619,6 +7620,16 @@ pub const PackageManager = struct {
}
}
}
+
+ if (manager.summary.update > 0) root.scripts = .{};
+ }
+
+ if (!root.scripts.filled) {
+ maybe_root.scripts.enqueue(
+ manager.lockfile,
+ lockfile.buffers.string_bytes.items,
+ strings.withoutTrailingSlash(Fs.FileSystem.instance.top_level_dir),
+ );
}
}
},