diff options
author | 2023-10-11 18:43:48 -0700 | |
---|---|---|
committer | 2023-10-12 16:04:57 -0700 | |
commit | 71a40672c2b73b39b4a54197f939ba1428902639 (patch) | |
tree | 0d0ec33cb3b9462515e238aaa329ce3ecbb22ae4 | |
parent | 6180b2dc2afec4a8c8ad9e8462301b8c8d089199 (diff) | |
download | bun-71a40672c2b73b39b4a54197f939ba1428902639.tar.gz bun-71a40672c2b73b39b4a54197f939ba1428902639.tar.zst bun-71a40672c2b73b39b4a54197f939ba1428902639.zip |
Clean up, implement warn_on_unrecognized_flag
-rw-r--r-- | src/cli.zig | 41 | ||||
-rw-r--r-- | src/deps/zig-clap/clap.zig | 4 | ||||
-rw-r--r-- | src/deps/zig-clap/clap/streaming.zig | 14 | ||||
-rw-r--r-- | src/install/install.zig | 7 |
4 files changed, 40 insertions, 26 deletions
diff --git a/src/cli.zig b/src/cli.zig index 24b46d052..6ba5ce3b6 100644 --- a/src/cli.zig +++ b/src/cli.zig @@ -156,7 +156,7 @@ pub const Arguments = struct { clap.parseParam("--inspect-brk <STR>? Activate Bun's debugger, set breakpoint on first line of code and wait") catch unreachable, clap.parseParam("--if-present Exit if the entrypoint does not exist") catch unreachable, clap.parseParam("--no-install Disable auto install in the Bun runtime") catch unreachable, - clap.parseParam("-i Automatically install dependencies and use global cache in Bun's runtime, equivalent to --install=fallback") catch unreachable, + clap.parseParam("-i Automatically install dependencies and use global cache in Bun's runtime, equivalent to --install=fallback") catch unreachable, clap.parseParam("--install <STR> Install dependencies automatically when no node_modules are present, default: \"auto\". \"force\" to ignore node_modules, fallback to install any missing") catch unreachable, clap.parseParam("--prefer-offline Skip staleness checks for packages in the Bun runtime and resolve from disk") catch unreachable, clap.parseParam("--prefer-latest Use the latest matching versions of packages in the Bun runtime, always checking npm") catch unreachable, @@ -887,7 +887,7 @@ pub const HelpCommand = struct { \\ \\ <b><yellow>upgrade<r> Get the latest version of Bun \\ <b>bun --help<r> Show all supported flags and commands - \\ <b>bun [command] --help<r> Print helptext for a specific command + \\ <b>bun [command] --help<r> Print helptext for a specific command \\ \\ Learn more about Bun: <magenta>https://bun.sh/docs<r> \\ Join our Discord community: <blue>https://bun.sh/discord<r> @@ -1092,6 +1092,10 @@ pub const Command = struct { if (strings.endsWithComptime(argv0, "bunx")) return .BunxCommand; + if (strings.endsWithComptime(std.mem.span(bun.argv()[0]), "node")) { + @import("./deps/zig-clap/clap/streaming.zig").warn_on_unrecognized_flag = false; + } + if (comptime Environment.isDebug) { if (strings.endsWithComptime(argv0, "bunx-debug")) return .BunxCommand; @@ -1803,10 +1807,7 @@ pub const Command = struct { }, Command.Tag.RunCommand => { const intro_text = - \\<b>Usage<r>: - \\ Run a file or package.json script. - \\ <b><green>bun run<r> <cyan>[flags]<r> \<file\> - \\ <b><green>bun run<r> <cyan>[flags]<r> \<package.json script\> + \\<b>Usage<r>: <b><green>bun run<r> <cyan>[flags]<r> \<file or script\> ; const outro_text = @@ -1820,6 +1821,7 @@ pub const Command = struct { \\ <b><green>bun run lint<r> \\ \\Full documentation is available at <magenta>https://bun.sh/docs/cli/run<r> + \\ ; Output.pretty(intro_text ++ "\n\n", .{}); @@ -1853,18 +1855,18 @@ pub const Command = struct { Command.Tag.BunxCommand => { Output.prettyErrorln( - \\usage<r><d>:<r> <cyan>bunx <r><d>[<r><blue>--bun<r><d>]<r><cyan> package<r><d>[@version] [...flags or arguments to pass through]<r> - \\ + \\<b>Usage: bunx <r><cyan>[flags]<r> \<package\><d>[@version] [...flags and arguments]<r> \\bunx runs an npm package executable, automatically installing into a global shared cache if not installed in node_modules. \\ - \\example<d>:<r> + \\Flags: \\ - \\ <cyan>bunx bun-repl<r> - \\ <cyan>bunx prettier foo.js<r> + \\ <cyan>--bun<r> Force the command to run with Bun instead of Node.js \\ - \\The <cyan>--bun<r> flag forces the package to run in Bun's JavaScript runtime, even when it tries to use Node.js. + \\Examples<d>:<r> \\ - \\ <cyan>bunx <r><blue>--bun<r><cyan> tsc --version<r> + \\ <b>bunx prisma migrate<r> + \\ <b>bunx prettier foo.js<r> + \\ <b>bunx<r> <cyan>--bun<r> <b>vite dev foo.js<r> \\ , .{}); }, @@ -1916,6 +1918,7 @@ pub const Command = struct { \\ <b><green>bun test<r> <cyan>--test-name-pattern<r> baz<r> \\ \\Full documentation is available at <magenta>https://bun.sh/docs/cli/test<r> + \\ ; Output.pretty("\n", .{}); Output.pretty(intro_text, .{}); @@ -1951,7 +1954,7 @@ pub const Command = struct { ; const outro_text = \\<b>Examples:<r> - \\ <d>Instal the latest stable version<r> + \\ <d>Install the latest stable version<r> \\ <b><green>bun upgrade<r> \\ \\ <d>Install the most recent canary version of Bun<r> @@ -1961,11 +1964,12 @@ pub const Command = struct { ; Output.pretty("\n", .{}); Output.pretty(intro_text, .{}); + Output.pretty("\n\n", {}); Output.flush(); - Output.pretty("\n\n<b>Flags:<r>", .{}); - Output.flush(); - clap.simpleHelp(&Arguments.test_only_params); - Output.pretty("\n\n", .{}); + // Output.pretty("\n\n<b>Flags:<r>", .{}); + // Output.flush(); + // clap.simpleHelp(&Arguments.test_only_params); + // Output.pretty("\n\n", .{}); Output.pretty(outro_text, .{}); Output.flush(); }, @@ -1973,6 +1977,7 @@ pub const Command = struct { const intro_text = \\<b>Usage<r>: <b><green>bun repl<r> <cyan>[flags]<r> \\ Open a Bun REPL + \\ ; Output.pretty(intro_text, .{}); diff --git a/src/deps/zig-clap/clap.zig b/src/deps/zig-clap/clap.zig index 3dd9d5a53..0edcab421 100644 --- a/src/deps/zig-clap/clap.zig +++ b/src/deps/zig-clap/clap.zig @@ -441,9 +441,9 @@ pub fn helpEx( pub fn simplePrintParam(param: Param(Help)) !void { Output.pretty("\n", .{}); if (param.names.short) |s| { - Output.pretty("<cyan>-{c}<r>", .{s}); + Output.pretty(" <cyan>-{c}<r>", .{s}); } else { - Output.pretty(" ", .{}); + Output.pretty(" ", .{}); } if (param.names.long) |l| { if (param.names.short) |_| { diff --git a/src/deps/zig-clap/clap/streaming.zig b/src/deps/zig-clap/clap/streaming.zig index ffe75b1cc..ee96e939c 100644 --- a/src/deps/zig-clap/clap/streaming.zig +++ b/src/deps/zig-clap/clap/streaming.zig @@ -11,6 +11,7 @@ const mem = std.mem; const os = std.os; const testing = std.testing; +pub var warn_on_unrecognized_flag = true; /// The result returned from StreamingClap.next pub fn Arg(comptime Id: type) type { return struct { @@ -99,14 +100,19 @@ pub fn StreamingClap(comptime Id: type, comptime ArgIterator: type) type { // unrecognized command // if flag else arg if (arg_info.kind == .long or arg_info.kind == .short) { - Output.prettyWarnln("<r><yellow>warn<r><d>:<r> unrecognized flag: {s}{s}\n", .{ if (arg_info.kind == .long) "--" else "-", name }); - Output.flush(); + if (warn_on_unrecognized_flag) { + Output.prettyWarnln("<r><yellow>warn<r><d>:<r> unrecognized flag: {s}{s}\n", .{ if (arg_info.kind == .long) "--" else "-", name }); + Output.flush(); + } + // continue parsing after unrecognized flag return parser.next(); } - Output.prettyWarnln("<r><yellow>warn<r><d>:<r> unrecognized argument: {s}\n", .{name}); - Output.flush(); + if (warn_on_unrecognized_flag) { + Output.prettyWarnln("<r><yellow>warn<r><d>:<r> unrecognized argument: {s}\n", .{name}); + Output.flush(); + } return null; }, .short => return try parser.chainging(.{ diff --git a/src/install/install.zig b/src/install/install.zig index 73e471ec5..d56a51c2a 100644 --- a/src/install/install.zig +++ b/src/install/install.zig @@ -6168,7 +6168,7 @@ pub const PackageManager = struct { ; Output.pretty("\n" ++ intro_text, .{}); Output.flush(); - Output.pretty("\n<b>Flags:<r>", .{}); + Output.pretty("\n\n<b>Flags:<r>", .{}); Output.flush(); clap.simpleHelp(&PackageManager.add_params); Output.pretty("\n\n" ++ outro_text, .{}); @@ -6178,6 +6178,7 @@ pub const PackageManager = struct { const intro_text = \\<b>Usage<r>: <b><green>bun update<r> <cyan>[flags]<r> \\ Update all dependencies to most recent versions within the version range in package.json + \\ ; const outro_text = \\<b>Examples:<r> @@ -6227,10 +6228,11 @@ pub const PackageManager = struct { const intro_text = \\<b>Usage<r>: <b><green>bun remove<r> <cyan>[flags]<r> \<pkg\> [...\<pkg\>] \\ Remove a package from package.json and uninstall from node_modules + \\ ; const outro_text = \\<b>Examples:<r> - \\ <d>Add a dependency from the npm registry<r> + \\ <d>Remove a dependency<r> \\ <b><green>bun remove ts-node<r> \\ \\Full documentation is available at <magenta>https://bun.sh/docs/cli/install#bun-remove<r> @@ -6246,6 +6248,7 @@ pub const PackageManager = struct { Subcommand.link => { const intro_text = \\<b>Usage<r>: <b><green>bun link<r> <cyan>[flags]<r> [\<package\>] + \\ ; const outro_text = \\<b>Examples:<r> |