Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ members = [
"smartcontract/programs/common",
"e2e/docker/ledger/fork-accounts",
"crates/doublezero-cli-core",
"crates/doublezero-daemon-cli",
"crates/doublezero-geolocation-cli",
"crates/sentinel",
]
Expand Down Expand Up @@ -106,6 +107,7 @@ tokio = { version = "1", default-features = false, features = [
] }
doublezero-cli-core = { path = "crates/doublezero-cli-core" }
doublezero-config = { path = "config" }
doublezero-daemon-cli = { path = "crates/doublezero-daemon-cli" }
doublezero-geolocation-cli = { path = "crates/doublezero-geolocation-cli" }
doublezero-sentinel = { path = "crates/sentinel" }
doublezero-serviceability-cli = { path = "smartcontract/cli" }
Expand Down
1 change: 1 addition & 0 deletions client/doublezero/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ tokio.workspace = true

# Dependencies from this workspace
doublezero_sdk = { workspace = true, features = ["cli-context"] }
doublezero-daemon-cli.workspace = true
doublezero-geolocation-cli.workspace = true
doublezero-serviceability-cli.workspace = true
doublezero-cli-core.workspace = true
Expand Down
34 changes: 34 additions & 0 deletions crates/doublezero-daemon-cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
[package]
name = "doublezero-daemon-cli"

# Workspace inherited keys
version.workspace = true
authors.workspace = true
edition.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true

[lib]
name = "doublezero_daemon_cli"

[dependencies]
chrono.workspace = true
clap.workspace = true
eyre.workspace = true
http.workspace = true
http-body-util.workspace = true
hyper.workspace = true
hyper-util.workspace = true
hyperlocal.workspace = true
mockall.workspace = true
serde.workspace = true
serde_json.workspace = true
tabled.workspace = true

doublezero-cli-core.workspace = true
doublezero-config.workspace = true

[dev-dependencies]
doublezero-cli-core = { workspace = true, features = ["testing"] }
tokio.workspace = true
29 changes: 29 additions & 0 deletions crates/doublezero-daemon-cli/src/cli.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
//! Top-level daemon-control subcommand tree per RFC-20.
//!
//! Mounted flat (`#[command(flatten)]`) — the binary's `Command` enum hoists
//! all variants so verbs surface as `doublezero <verb>` (e.g. `doublezero
//! connect`, `doublezero status`).

use clap::Subcommand;
use doublezero_cli_core::CliContext;
use std::io::Write;

use crate::{client::DaemonClient, ledger::LedgerClient};

/// Daemon-control verbs hoisted to the binary's top level.
///
/// Populated incrementally as verbs migrate from the binary into this crate.
#[derive(Subcommand, Debug)]
pub enum DaemonCommand {}

impl DaemonCommand {
pub async fn execute<D: DaemonClient, L: LedgerClient, W: Write>(
self,
_ctx: &CliContext,
_daemon: &D,
_ledger: &L,
_out: &mut W,
) -> eyre::Result<()> {
match self {}
}
}
Loading
Loading