robotrt-cli 0.1.0-beta.2

RobotRT modular robotics runtime and middleware components.
mod control;
mod info;
mod policy;
mod serve;
mod watch;

use introspection_core::StatusSnapshot;

use crate::constants::DEFAULT_STATUS_REPORT_PATH;
use crate::helpers::resolve_runtime_endpoint_optional;

const DEFAULT_STATUS_BIND_ADDR: &str = "127.0.0.1:7588";

pub(super) type StatusSource = super::snapshot_shared::SnapshotSource;

pub(super) fn load_status_snapshot(
    args: &[String],
) -> Result<(StatusSnapshot, StatusSource), String> {
    super::snapshot_shared::load_status_snapshot(
        args,
        resolve_runtime_endpoint_optional(args, DEFAULT_STATUS_BIND_ADDR)?,
        "--timeout-ms",
        DEFAULT_STATUS_REPORT_PATH,
    )
}

pub fn gateway_serve(args: &[String]) -> Result<(), String> {
    serve::gateway_serve(args)
}

pub fn gateway_observe(args: &[String]) -> Result<(), String> {
    control::gateway_observe(args)
}

pub fn gateway_policy_get(args: &[String]) -> Result<(), String> {
    control::gateway_policy_get(args)
}

pub fn gateway_policy_set(args: &[String]) -> Result<(), String> {
    control::gateway_policy_set(args)
}

pub fn gateway_audit_list(args: &[String]) -> Result<(), String> {
    control::gateway_audit_list(args)
}

pub fn gateway_shutdown(args: &[String]) -> Result<(), String> {
    control::gateway_shutdown(args)
}

pub fn node_info(args: &[String]) -> Result<(), String> {
    info::node_info(args)
}

pub fn topic_info(args: &[String]) -> Result<(), String> {
    info::topic_info(args)
}

pub fn action_info(args: &[String]) -> Result<(), String> {
    info::action_info(args)
}

pub fn action_watch(args: &[String]) -> Result<(), String> {
    watch::action_watch(args)
}

pub fn mission_watch(args: &[String]) -> Result<(), String> {
    watch::mission_watch(args)
}

pub fn plugin_list(args: &[String]) -> Result<(), String> {
    info::plugin_list(args)
}

pub fn health_cmd(args: &[String]) -> Result<(), String> {
    info::health_cmd(args)
}

pub fn graph_cmd(args: &[String]) -> Result<(), String> {
    info::graph_cmd(args)
}