aboutsummaryrefslogtreecommitdiff
path: root/src/cli.zig
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/cli.zig35
1 files changed, 30 insertions, 5 deletions
diff --git a/src/cli.zig b/src/cli.zig
index b878b31a4..743527a93 100644
--- a/src/cli.zig
+++ b/src/cli.zig
@@ -44,6 +44,8 @@ const CreateListExamplesCommand = @import("./cli/create_command.zig").CreateList
const DevCommand = @import("./cli/dev_command.zig").DevCommand;
const DiscordCommand = @import("./cli/discord_command.zig").DiscordCommand;
const InstallCommand = @import("./cli/install_command.zig").InstallCommand;
+const LinkCommand = @import("./cli/link_command.zig").LinkCommand;
+const UnlinkCommand = @import("./cli/unlink_command.zig").UnlinkCommand;
const InstallCompletionsCommand = @import("./cli/install_completions_command.zig").InstallCompletionsCommand;
const PackageManagerCommand = @import("./cli/package_manager_command.zig").PackageManagerCommand;
const RemoveCommand = @import("./cli/remove_command.zig").RemoveCommand;
@@ -854,6 +856,8 @@ pub const Command = struct {
RootCommandMatcher.case("upgrade") => .UpgradeCommand,
RootCommandMatcher.case("completions") => .InstallCompletionsCommand,
RootCommandMatcher.case("getcompletes") => .GetCompletionsCommand,
+ RootCommandMatcher.case("link") => .LinkCommand,
+ RootCommandMatcher.case("unlink") => .UnlinkCommand,
RootCommandMatcher.case("i"), RootCommandMatcher.case("install") => brk: {
for (args_iter.buf) |arg| {
@@ -951,6 +955,18 @@ pub const Command = struct {
try RemoveCommand.exec(ctx);
return;
},
+ .LinkCommand => {
+ const ctx = try Command.Context.create(allocator, log, .LinkCommand);
+
+ try LinkCommand.exec(ctx);
+ return;
+ },
+ .UnlinkCommand => {
+ const ctx = try Command.Context.create(allocator, log, .UnlinkCommand);
+
+ try UnlinkCommand.exec(ctx);
+ return;
+ },
.PackageManagerCommand => {
const ctx = try Command.Context.create(allocator, log, .PackageManagerCommand);
@@ -1244,6 +1260,8 @@ pub const Command = struct {
UpgradeCommand,
PackageManagerCommand,
TestCommand,
+ LinkCommand,
+ UnlinkCommand,
pub fn params(comptime cmd: Tag) []const Arguments.ParamType {
return &comptime switch (cmd) {
@@ -1261,7 +1279,7 @@ pub const Command = struct {
pub fn isNPMRelated(this: Tag) bool {
return switch (this) {
- .PackageManagerCommand, .InstallCommand, .AddCommand, .RemoveCommand => true,
+ .LinkCommand, .UnlinkCommand, .PackageManagerCommand, .InstallCommand, .AddCommand, .RemoveCommand => true,
else => false,
};
}
@@ -1273,12 +1291,17 @@ pub const Command = struct {
.DevCommand = true,
.RunCommand = true,
.TestCommand = true,
- .InstallCommand = true,
- .AddCommand = true,
- .RemoveCommand = true,
});
- pub const loads_config = cares_about_bun_file;
+ pub const loads_config = brk: {
+ var cares = cares_about_bun_file;
+ cares.set(.InstallCommand, true);
+ cares.set(.AddCommand, true);
+ cares.set(.RemoveCommand, true);
+ cares.set(.LinkCommand, true);
+ cares.set(.UnlinkCommand, true);
+ break :brk cares;
+ };
pub const always_loads_config: std.EnumArray(Tag, bool) = std.EnumArray(Tag, bool).initDefault(false, .{
.BuildCommand = true,
.BunCommand = true,
@@ -1296,6 +1319,8 @@ pub const Command = struct {
.AddCommand = false,
.RemoveCommand = false,
.PackageManagerCommand = false,
+ .LinkCommand = false,
+ .UnlinkCommand = false,
});
};
};