- Notifications
You must be signed in to change notification settings - Fork2
Easily add address & port flags to CLIs using Clap
License
Apache-2.0, MIT licenses found
Licenses found
Apache-2.0
LICENSE-APACHEMIT
LICENSE-MITNotificationsYou must be signed in to change notification settings
clap-rs/clap-port-flag
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Easily add a--port
flag to CLIs using clap.
With the following code insrc/main.rs
:
use clap::Parser;use clap_port_flag::Port;#[derive(Debug,Parser)]structCli{#[clap(flatten)]port:Port,}fnmain(){let args =Cli::parse();let _tcp_listener = args.port.bind().unwrap();}
When you run the binary, it'll provide the following output:
my-cool-app 0.2.0Alice Person <alice@person.com>Application that does things over TCP.USAGE: main [OPTIONS]FLAGS: -h, --help Prints help information -V, --version Prints version informationOPTIONS: --listen-fd <fd> A previously opened network socket. [env: LISTEN_FD=] -a, --address <hostname> The network address to listen to. [default: 127.0.0.1] -p, --port <port> The network port to listen to. [env: PORT=]
use clap_port_flag::Port;use futures::prelude::*;use hyper::service::service_fn;use hyper::{Body,Response,Request};use clap::Parser;#[derive(Debug,Parser)]structCli{#[clap(flatten)]port:Port,}asyncfnhello(_:Request<Body>) ->Result<Response<String>, std::convert::Infallible>{Ok(Response::new(String::from("Hello World!")))}#[tokio::main]asyncfnmain() ->Result<(),Box<dyn std::error::Error>>{let args =Cli::parse();let listener = args.port.bind()?;let listener = tokio::net::TcpListener::from_std(listener)?;let addr = listener.local_addr()?;println!("Server listening on {}", addr);let(stream, _) = listener.accept().await?;ifletErr(e) = hyper::server::conn::Http::new().serve_connection(stream,service_fn(hello)).await{eprintln!("server error: {}", e);}Ok(())}
$ cargo add clap-port-flag
The original version of this crate was sketched out by@TeXitoi inrust-lang-nursery/cli-wg#37.
About
Easily add address & port flags to CLIs using Clap
Topics
Resources
License
Apache-2.0, MIT licenses found
Licenses found
Apache-2.0
LICENSE-APACHEMIT
LICENSE-MITCode of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.
Contributors5
Uh oh!
There was an error while loading.Please reload this page.