aboutsummaryrefslogtreecommitdiff
path: root/vendor/libghostty-vt/src/cli/help.zig
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-04-04 19:22:04 +0300
committerCan Celik <ogulcancelik@gmail.com>2026-04-05 01:23:06 +0300
commit41dd733ca7123c9ac4bfc6c781697a660e95b052 (patch)
tree3fc91815ca139ef2e0b281bba0abda4ef15175f4 /vendor/libghostty-vt/src/cli/help.zig
parent55c138263e190a1e79d4b997bfb9397306c0ec1f (diff)
feat: finish ghostty pane backend integration
Diffstat (limited to 'vendor/libghostty-vt/src/cli/help.zig')
-rw-r--r--vendor/libghostty-vt/src/cli/help.zig78
1 files changed, 78 insertions, 0 deletions
diff --git a/vendor/libghostty-vt/src/cli/help.zig b/vendor/libghostty-vt/src/cli/help.zig
new file mode 100644
index 00000000..a2b4dde8
--- /dev/null
+++ b/vendor/libghostty-vt/src/cli/help.zig
@@ -0,0 +1,78 @@
+const std = @import("std");
+const Allocator = std.mem.Allocator;
+const args = @import("args.zig");
+const Action = @import("ghostty.zig").Action;
+
+// Note that this options struct doesn't implement the `help` decl like other
+// actions. That is because the help command is special and wants to handle its
+// own logic around help detection.
+pub const Options = struct {
+ /// This must be registered so that it isn't an error to pass `--help`
+ help: bool = false,
+
+ pub fn deinit(self: Options) void {
+ _ = self;
+ }
+};
+
+/// The `help` command shows general help about Ghostty. Recognized as either
+/// `-h, `--help`, or like other actions `+help`.
+///
+/// You can also specify `--help` or `-h` along with any action such as
+/// `+list-themes` to see help for a specific action.
+pub fn run(alloc: Allocator) !u8 {
+ var opts: Options = .{};
+ defer opts.deinit();
+
+ {
+ var iter = try args.argsIterator(alloc);
+ defer iter.deinit();
+ try args.parse(Options, alloc, &opts, &iter);
+ }
+
+ var buffer: [2048]u8 = undefined;
+ var stdout_writer = std.fs.File.stdout().writer(&buffer);
+ const stdout = &stdout_writer.interface;
+ try stdout.writeAll(
+ \\Usage: ghostty [+action] [options]
+ \\
+ \\Run the Ghostty terminal emulator or a specific helper action.
+ \\
+ \\If no `+action` is specified, run the Ghostty terminal emulator.
+ \\All configuration keys are available as command line options.
+ \\To specify a configuration key, use the `--<key>=<value>` syntax
+ \\where key and value are the same format you'd put into a configuration
+ \\file. For example, `--font-size=12` or `--font-family="Fira Code"`.
+ \\
+ \\To see a list of all available configuration options, please see
+ \\the `src/config/Config.zig` file. A future update will allow seeing
+ \\the list of configuration options from the command line.
+ \\
+ \\A special command line argument `-e <command>` can be used to run
+ \\the specific command inside the terminal emulator. For example,
+ \\`ghostty -e top` will run the `top` command inside the terminal.
+ \\
+ \\On macOS, launching the terminal emulator from the CLI is not
+ \\supported and only actions are supported. Use `open -na Ghostty.app`
+ \\instead, or `open -na ghostty.app --args --foo=bar --baz=quz` to pass
+ \\arguments.
+ \\
+ \\Available actions:
+ \\
+ \\
+ );
+
+ inline for (@typeInfo(Action).@"enum".fields) |field| {
+ try stdout.print(" +{s}\n", .{field.name});
+ }
+
+ try stdout.writeAll(
+ \\
+ \\Specify `+<action> --help` to see the help for a specific action,
+ \\where `<action>` is one of actions listed above.
+ \\
+ );
+ try stdout.flush();
+
+ return 0;
+}