aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Colin McDonnell <colinmcd94@gmail.com> 2023-10-11 18:43:48 -0700
committerGravatar Colin McDonnell <colinmcd94@gmail.com> 2023-10-12 16:04:57 -0700
commit71a40672c2b73b39b4a54197f939ba1428902639 (patch)
tree0d0ec33cb3b9462515e238aaa329ce3ecbb22ae4
parent6180b2dc2afec4a8c8ad9e8462301b8c8d089199 (diff)
downloadbun-71a40672c2b73b39b4a54197f939ba1428902639.tar.gz
bun-71a40672c2b73b39b4a54197f939ba1428902639.tar.zst
bun-71a40672c2b73b39b4a54197f939ba1428902639.zip
Clean up, implement warn_on_unrecognized_flag
-rw-r--r--src/cli.zig41
-rw-r--r--src/deps/zig-clap/clap.zig4
-rw-r--r--src/deps/zig-clap/clap/streaming.zig14
-rw-r--r--src/install/install.zig7
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>