mirror of
https://github.com/l0ng-ai/tty7.git
synced 2026-09-21 16:02:20 +00:00
68 lines
2.4 KiB
TOML
68 lines
2.4 KiB
TOML
# The thin console CLI: the `tty7` on the user's PATH.
|
|
# A control/pane-protocol client of tty7-server — the GUI is never required.
|
|
# Kept apart from the GUI binary on purpose (subsystem, upgrade file locks,
|
|
# millisecond cold start).
|
|
[package]
|
|
name = "tty7-cli"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
description = "tty7's command line: a thin client for the tty7 server — workspaces, tabs, panes, agents, no GUI required"
|
|
repository = "https://github.com/l0ng-ai/tty7"
|
|
license = "Apache-2.0"
|
|
publish = false
|
|
|
|
[[bin]]
|
|
name = "tty7"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
# Protocol types only (ControlRequest/ReplyOk, the machine tree, PaneProcs).
|
|
# Default features: no gssapi, no remote-install — the CLI is a client of a
|
|
# server that already exists, it never links krb5 or an HTTP fetcher.
|
|
tty7-core = { path = "../tty7-core" }
|
|
|
|
anyhow.workspace = true
|
|
serde_json.workspace = true
|
|
|
|
# The command grammar. Not in [workspace.dependencies] because this is its only
|
|
# user, same as the GUI package's own single-user pins (regex, memchr, …).
|
|
clap = { version = "4", features = ["derive"] }
|
|
|
|
# Column alignment in the tables. Byte length is not display width: a CJK
|
|
# workspace name or cwd is two columns per char, and padding by len() puts
|
|
# every column after it out of line. Already in the tree via alacritty.
|
|
unicode-width = "0.2"
|
|
|
|
# The VT parser behind `capture --plain`. A pane's replay is a byte stream, and
|
|
# recovering the text from it is a terminal's job, not a regex's: only the grid
|
|
# knows that a break at column 120 was a wrap rather than a newline, that a CR
|
|
# meant "overwrite this line", or which cell a wide char and its spacer share.
|
|
# The same crate the GUI renders with, at the same rev, so the two agree about
|
|
# what a pane says.
|
|
alacritty_terminal.workspace = true
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
libc = "0.2"
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|
|
|
|
# The e2e harness puts its throwaway daemon in a Job Object wired to
|
|
# KILL_ON_JOB_CLOSE, so a hard-killed test run cannot leak servers.
|
|
[target.'cfg(windows)'.dev-dependencies]
|
|
windows-sys = { version = "0.59", features = [
|
|
"Win32_Foundation",
|
|
"Win32_Security",
|
|
"Win32_System_Console",
|
|
"Win32_System_JobObjects",
|
|
] }
|
|
|
|
# The end-to-end suite drives the compiled tty7.exe against a real isolated
|
|
# server; its own main doubles as that server process, so no libtest harness.
|
|
[[test]]
|
|
name = "cli_e2e"
|
|
harness = false
|
|
|
|
[lints]
|
|
workspace = true
|