Started with command parsing

This commit is contained in:
Dave Hrycyszyn
2024-05-29 13:17:16 +01:00
parent d57542b024
commit 8e290f8bef
2 changed files with 42 additions and 0 deletions

38
side-node/src/cli/mod.rs Normal file
View File

@@ -0,0 +1,38 @@
use clap::{arg, Parser, Subcommand};
pub(crate) fn parse_args() -> Args {
let args = Args::parse();
match &args.command {
Some(Commands::Init { init }) => {
if *init {
println!("Initializing Side Node")
}
}
Some(Commands::Run {}) => {
println!("Running side node")
}
None => todo!(),
}
args
}
/// Simple program to greet a person
#[derive(Parser)]
#[command(version, about, long_about = None)]
pub(crate) struct Args {
#[command(subcommand)]
command: Option<Commands>,
}
#[derive(Subcommand)]
enum Commands {
/// runs the Side Node
Run {},
Init {
/// initializes a Side Node with a config file and keypair
#[arg(short, long)]
init: bool,
},
}

View File

@@ -1,7 +1,11 @@
use cli::parse_args;
use websockets::{WebSocket, WebSocketError};
pub(crate) mod cli;
#[tokio::main]
async fn main() -> Result<(), WebSocketError> {
parse_args();
let mut ws = WebSocket::connect("ws://localhost:8080/").await?;
ws.send_text("foo".to_string()).await?;