diff options
author | 2023-08-30 18:29:08 -0700 | |
---|---|---|
committer | 2023-08-30 18:29:08 -0700 | |
commit | 89f24e66fff37eab4b984847b73be0b69dbcd0a8 (patch) | |
tree | f2f3e4f37c1c96c797e34c68263a422443d87e43 | |
parent | 037463fc48a96cfdacb647ba44e021abd5e4769e (diff) | |
download | bun-89f24e66fff37eab4b984847b73be0b69dbcd0a8.tar.gz bun-89f24e66fff37eab4b984847b73be0b69dbcd0a8.tar.zst bun-89f24e66fff37eab4b984847b73be0b69dbcd0a8.zip |
add life cycle scripts to lockfile metahash (#4420)
* add life cycle scripts to lockfile metahash
* Update lockfile.zig
-rw-r--r-- | src/install/lockfile.zig | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/install/lockfile.zig b/src/install/lockfile.zig index 753d22857..1291c648a 100644 --- a/src/install/lockfile.zig +++ b/src/install/lockfile.zig @@ -4231,6 +4231,25 @@ fn generateMetaHash(this: *Lockfile, print_name_version_string: bool) !MetaHash } } + const scripts_begin = "\n-- BEGIN SCRIPTS --\n"; + const scripts_end = "\n-- END SCRIPTS --\n"; + var has_scripts = false; + + inline for (comptime std.meta.fieldNames(Lockfile.Scripts)) |field_name| { + var scripts = @field(this.scripts, field_name); + for (scripts.items) |script| { + if (script.script.len > 0) { + string_builder.fmtCount("{s}@{s}: {s}\n", .{ field_name, script.cwd, script.script }); + has_scripts = true; + } + } + } + + if (has_scripts) { + string_builder.count(scripts_begin); + string_builder.count(scripts_end); + } + std.sort.block( PackageID, alphabetized_names, @@ -4250,6 +4269,19 @@ fn generateMetaHash(this: *Lockfile, print_name_version_string: bool) !MetaHash _ = string_builder.fmt("{s}@{}\n", .{ names[i].slice(bytes), resolutions[i].fmt(bytes) }); } + if (has_scripts) { + _ = string_builder.append(scripts_begin); + inline for (comptime std.meta.fieldNames(Lockfile.Scripts)) |field_name| { + var scripts = @field(this.scripts, field_name); + for (scripts.items) |script| { + if (script.script.len > 0) { + _ = string_builder.fmt("{s}@{s}: {s}\n", .{ field_name, script.cwd, script.script }); + } + } + } + _ = string_builder.append(scripts_end); + } + string_builder.ptr.?[string_builder.len..string_builder.cap][0..hash_suffix.len].* = hash_suffix.*; string_builder.len += hash_suffix.len; |