diff options
author | metamuffin <yvchraiqi@protonmail.com> | 2022-06-10 17:48:32 +0200 |
---|---|---|
committer | metamuffin <yvchraiqi@protonmail.com> | 2022-06-10 17:48:32 +0200 |
commit | 45f2d1651f17d7e155748cfd1e1cd9a96f3e530e (patch) | |
tree | 6847a4552db06b56a5e0a55aa56354eccb7c41b1 /karlc/src/client.rs | |
parent | d65b915f3dfda28aad6f2806df38c8ad77135d8b (diff) | |
download | karlender-45f2d1651f17d7e155748cfd1e1cd9a96f3e530e.tar karlender-45f2d1651f17d7e155748cfd1e1cd9a96f3e530e.tar.bz2 karlender-45f2d1651f17d7e155748cfd1e1cd9a96f3e530e.tar.zst |
better cli
Diffstat (limited to 'karlc/src/client.rs')
-rw-r--r-- | karlc/src/client.rs | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/karlc/src/client.rs b/karlc/src/client.rs index 6420da0..e7ca44d 100644 --- a/karlc/src/client.rs +++ b/karlc/src/client.rs @@ -5,8 +5,8 @@ use std::{ }; use crossbeam_channel::Receiver; -use karlcommon::{ClientboundPacket, ServerboundPacket}; -use log::debug; +use karlcommon::{version, ClientboundPacket, ServerboundPacket}; +use log::{debug, error}; pub struct Client { socket: UnixStream, @@ -17,18 +17,20 @@ impl Client { pub fn new(socket: UnixStream) -> Self { let (sender, receiver) = crossbeam_channel::unbounded(); let mut reader = BufReader::new(socket.try_clone().unwrap()); - thread::spawn(move || { - loop { - let mut buf = String::new(); - reader.read_line(&mut buf).unwrap(); - let p: ClientboundPacket = serde_json::from_str(buf.as_str()).unwrap(); - debug!("<- {:?}", p); + thread::spawn(move || loop { + let mut buf = String::new(); + reader.read_line(&mut buf).unwrap(); + let p: ClientboundPacket = serde_json::from_str(buf.as_str()).unwrap(); + debug!("<- {:?}", p); + if let ClientboundPacket::Error(e) = p { + error!("daemon reported error: {:?}", e); + } else { sender.send(p).unwrap(); } }); let mut c = Self { receiver, socket }; c.send(ServerboundPacket::Handshake { - version: env!("CARGO_PKG_VERSION").to_owned(), + version: version!(), }); return c; } |