-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCargo.toml
More file actions
68 lines (63 loc) · 2.59 KB
/
Copy pathCargo.toml
File metadata and controls
68 lines (63 loc) · 2.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
[package]
name = "lns-cli"
version = "0.14.0"
edition = "2024"
description = "Lens Sandbox — thin CLI that drives the lns-service daemon"
repository = "https://github.com/lensapp/lens-sandbox"
# Binary + library split. The library hosts the orchestration
# (lns_cli::dispatch + the cli/audit/log/service modules) so Layer 2
# cucumber tests in tests/behaviours/ can drive subcommands
# in-process. The binary is a thin shim that parses argv via clap
# and propagates the library's exit code via process::exit.
[lib]
name = "lns_cli"
path = "src/lib.rs"
# Binary name is `lns` — the crate package is `lns-cli` but the
# operator-facing CLI is plain `lns`.
[[bin]]
name = "lns"
path = "src/main.rs"
[dependencies]
clap = { version = "4", features = ["derive"] }
lns-ipc = { path = "../lns-ipc" }
lns-policy = { path = "../lns-policy" }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "fs", "io-util", "io-std", "net", "process", "signal", "time", "sync"] }
anyhow = "1"
dirs = "5"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"
sha2 = "0.10"
libc = "0.2"
tracing = "0.1.44"
tracing-subscriber = { version = "0.3.23", features = ["env-filter", "fmt", "ansi"] }
anstyle = "1"
# `lns update` machinery — mirrors lns-service's kernel resolver
# shape (reqwest with rustls + stream features, tar+flate2 for the
# release tarball, sha2 for the manifest-pinned checksum).
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "stream"] }
futures-util = "0.3"
flate2 = "1"
tar = "0.4"
tempfile = "3"
[dev-dependencies]
cucumber = "0.23"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "test-util"] }
# `#[serial]` for tests that mutate process-wide env state (LNS_LOG /
# RUST_LOG env_filter coverage).
serial_test = "3"
# Used by tests/no_dead_steps.rs to compile each step attribute's
# pattern and assert it matches at least one .feature phrase.
regex = "1"
# Local HTTP mock server for the `lns update` test suite — every
# orchestration test points reqwest at this instead of the real CDN.
# default-features=false drops `cookies`/`headers` which we don't use.
httpmock = { version = "0.8", default-features = false }
# Layer 2 (behavioural unit) cucumber harness. Drives `lns_cli::cli::Cli`
# in-process — no subprocess spawns, no real FS, no real sockets.
# Features live alongside the harness in tests/behaviours/*.feature.
# harness = false lets cucumber's main() run; libtest would otherwise
# hijack it and report 0 tests.
[[test]]
name = "behaviours"
harness = false