Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
cli: Add `rad node sessions`
cloudhead committed 2 years ago
commit 87c38118d19ce3891ff7c0d50107e28a81e04b97
parent 9a54c8da7bb9394fc42a8fe99eeef2916b4a0fce
1 file changed +11 -0
modified radicle-cli/src/commands/node.rs
@@ -8,6 +8,7 @@ use radicle::prelude::Id;

use crate::terminal as term;
use crate::terminal::args::{Args, Error, Help};
+
use crate::terminal::Element as _;

#[path = "node/control.rs"]
mod control;
@@ -88,6 +89,7 @@ pub enum Operation {
        lines: usize,
    },
    Status,
+
    Sessions,
    Stop,
    Tracking {
        mode: TrackingMode,
@@ -110,6 +112,7 @@ pub enum OperationName {
    Start,
    #[default]
    Status,
+
    Sessions,
    Stop,
    Tracking,
}
@@ -145,6 +148,7 @@ impl Args for Options {
                    "status" => op = Some(OperationName::Status),
                    "stop" => op = Some(OperationName::Stop),
                    "tracking" => op = Some(OperationName::Tracking),
+
                    "sessions" => op = Some(OperationName::Sessions),

                    unknown => anyhow::bail!("unknown operation '{}'", unknown),
                },
@@ -204,6 +208,7 @@ impl Args for Options {
                options,
            },
            OperationName::Status => Operation::Status,
+
            OperationName::Sessions => Operation::Sessions,
            OperationName::Stop => Operation::Stop,
            OperationName::Tracking => Operation::Tracking {
                mode: tracking_mode,
@@ -221,6 +226,12 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
        Operation::Connect { addr, timeout } => {
            control::connect(&mut node, addr.id, addr.addr, timeout)?
        }
+
        Operation::Sessions => {
+
            let sessions = control::sessions(&node)?;
+
            if let Some(table) = sessions {
+
                table.print();
+
            }
+
        }
        Operation::Events { timeout, count } => {
            events::run(node, count, timeout)?;
        }