diff options
Diffstat (limited to 'src/install')
-rw-r--r-- | src/install/dependency.zig | 4 | ||||
-rw-r--r-- | src/install/install.zig | 7 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/install/dependency.zig b/src/install/dependency.zig index 8e862af97..2f56753a3 100644 --- a/src/install/dependency.zig +++ b/src/install/dependency.zig @@ -540,10 +540,10 @@ pub fn parseWithTag( if (strings.indexOf(dependency, ":")) |protocol| { if (strings.eqlComptime(dependency[0..protocol], "file")) { if (dependency.len <= protocol) { - if (log_) |log| log.addErrorFmt(null, logger.Loc.Empty, allocator, "file: dependency missing a path", .{dependency}) catch unreachable; + if (log_) |log| log.addErrorFmt(null, logger.Loc.Empty, allocator, "\"file\" dependency missing a path", .{}) catch unreachable; return null; } - + return Version{ .literal = sliced.value(), .value = .{ .folder = sliced.sub(dependency[protocol + 1 ..]).value() }, .tag = .folder }; } diff --git a/src/install/install.zig b/src/install/install.zig index 7ce829714..638923739 100644 --- a/src/install/install.zig +++ b/src/install/install.zig @@ -6263,10 +6263,11 @@ pub const PackageManager = struct { // if node_modules/foo/package.json has a folder:, then this will not create a valid symlink .folder => { var folder_buf: [std.fs.MAX_PATH_BYTES]u8 = undefined; + const folder = resolution.value.folder.slice(buf); std.mem.copy(u8, &folder_buf, "../" ++ std.fs.path.sep_str); - std.mem.copy(u8, folder_buf["../".len..], name); - folder_buf["../".len + name.len] = 0; - var folderZ: [:0]u8 = folder_buf[0 .. "../".len + name.len :0]; + std.mem.copy(u8, folder_buf["../".len..], folder); + folder_buf["../".len + folder.len] = 0; + var folderZ: [:0]u8 = folder_buf[0 .. "../".len + folder.len :0]; const needs_install = this.force_install or this.skip_verify or brk: { std.mem.copy(u8, this.destination_dir_subpath_buf[name.len..], std.fs.path.sep_str ++ "package.json"); |