1use std::process;
2use nwep::{Keypair, client::ClientBuilder, Url};
3
4fn main() {
5 let url = std::env::args().nth(1).unwrap_or_else(|| {
6 eprintln!("usage: client <web://url/path>");
7 process::exit(1);
8 });
9
10 nwep::init().unwrap_or_else(|e| {
11 eprintln!("init: {e}");
12 process::exit(1);
13 });
14
15 nwep::log::set_level(nwep::log::LogLevel::Warn);
16 nwep::log::set_stderr(true);
17
18 let parsed = Url::parse(&url).unwrap_or_else(|e| {
19 eprintln!("parse url: {e}");
20 process::exit(1);
21 });
22 let path = if parsed.path.is_empty() { "/".to_string() } else { parsed.path.clone() };
23
24 let keypair = Keypair::generate().unwrap_or_else(|e| {
25 eprintln!("keygen: {e}");
26 process::exit(1);
27 });
28
29 let client = ClientBuilder::new()
30 .connect(keypair, &url)
31 .unwrap_or_else(|e| {
32 eprintln!("connect: {e}");
33 process::exit(1);
34 });
35
36 let resp = client.get(&path).unwrap_or_else(|e| {
37 eprintln!("get: {e}");
38 process::exit(1);
39 });
40
41 println!("{}", resp.status);
42 println!("{}", String::from_utf8_lossy(&resp.body));
43
44 client.close();
45}