mirror of
https://github.com/NVIDIA/OpenShell.git
synced 2026-10-03 16:11:17 +08:00
* fix(cli): stream piped exec stdin across gRPC messages Signed-off-by: Drew Newberry <anewberry@nvidia.com> * fix(cli): preserve small exec requests and surface stdin errors Signed-off-by: Drew Newberry <anewberry@nvidia.com> * fix(cli): preserve exec stdin limit across gRPC streaming Signed-off-by: Drew Newberry <anewberry@nvidia.com> --------- Signed-off-by: Drew Newberry <anewberry@nvidia.com>
105 lines
3.0 KiB
TOML
105 lines
3.0 KiB
TOML
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
[package]
|
|
name = "openshell-cli"
|
|
description = "OpenShell CLI tool"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
|
|
[[bin]]
|
|
name = "openshell"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
openshell-bootstrap = { path = "../openshell-bootstrap" }
|
|
openshell-core = { path = "../openshell-core", default-features = false }
|
|
openshell-policy = { path = "../openshell-policy" }
|
|
openshell-providers = { path = "../openshell-providers" }
|
|
openshell-sdk = { path = "../openshell-sdk" }
|
|
openshell-tui = { path = "../openshell-tui" }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
serde_yml = { workspace = true }
|
|
prost = { workspace = true }
|
|
prost-types = { workspace = true }
|
|
|
|
# Async runtime
|
|
tokio = { workspace = true }
|
|
|
|
# gRPC client
|
|
tonic = { workspace = true, features = ["tls-native-roots"] }
|
|
|
|
# CLI
|
|
chrono = "0.4"
|
|
clap = { workspace = true }
|
|
clap_complete = { workspace = true }
|
|
crossterm = { workspace = true }
|
|
# Styling backend shared by dialoguer and indicatif; `color` overrides its
|
|
# global switch so both follow the CLI's --color setting.
|
|
console = "0.15"
|
|
dialoguer = "0.11"
|
|
indicatif = { workspace = true }
|
|
owo-colors = { workspace = true }
|
|
|
|
# HTTP client (health fallback)
|
|
bytes = { workspace = true }
|
|
http-body-util = { workspace = true }
|
|
hyper = { workspace = true }
|
|
hyper-util = { workspace = true }
|
|
hyper-rustls = { version = "0.27", default-features = false, features = ["native-tokio", "http1", "http2", "tls12", "logging", "aws-lc-rs"] }
|
|
rustls = { workspace = true }
|
|
rustls-pemfile = { workspace = true }
|
|
tokio-rustls = { workspace = true }
|
|
tower = { workspace = true }
|
|
reqwest = { workspace = true }
|
|
|
|
# Error handling
|
|
miette = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
|
|
# File archiving (tar-over-SSH sync)
|
|
tar = "0.4"
|
|
tempfile = "3"
|
|
|
|
# OIDC/Auth
|
|
oauth2 = { version = "5", default-features = false, features = ["reqwest"] }
|
|
base64 = { workspace = true }
|
|
|
|
# WebSocket (Cloudflare tunnel proxy)
|
|
tokio-tungstenite = { workspace = true }
|
|
|
|
# Streams
|
|
futures = { workspace = true }
|
|
tokio-stream = { workspace = true }
|
|
|
|
# URL parsing
|
|
url = { workspace = true }
|
|
|
|
# Logging
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true }
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
nix = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
# Tests import the example profiles from providers/ the way an operator
|
|
# would; the feature is test-only and never reaches a release binary.
|
|
openshell-providers = { path = "../openshell-providers", features = ["example-profiles"] }
|
|
futures = { workspace = true }
|
|
openshell-server = { path = "../openshell-server", features = ["test-support"] }
|
|
rcgen = { workspace = true }
|
|
reqwest = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
temp-env = "0.3"
|
|
tokio-stream = { workspace = true }
|
|
url = { workspace = true }
|