diff options
Diffstat (limited to 'karlgui/src/client.rs')
-rw-r--r-- | karlgui/src/client.rs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/karlgui/src/client.rs b/karlgui/src/client.rs index b027cdc..731c6ff 100644 --- a/karlgui/src/client.rs +++ b/karlgui/src/client.rs @@ -1,9 +1,10 @@ use crossbeam_channel::Receiver; -use karlcommon::{version, ClientboundPacket, ServerboundPacket}; +use karlcommon::{interfaces::unix_path, version, ClientboundPacket, ServerboundPacket}; use log::{debug, error}; use std::{ io::{BufRead, BufReader, Write}, os::unix::net::UnixStream, + process::exit, thread, }; @@ -14,7 +15,16 @@ pub struct Client { } impl Client { - pub fn new(socket: UnixStream) -> Self { + pub fn new() -> Self { + let socket = match UnixStream::connect(unix_path()) { + Ok(s) => s, + Err(e) => { + error!("failed to connect to socket: {}", e); + error!("make sure that karld is running"); + exit(1) + } + }; + let (sender, receiver) = crossbeam_channel::unbounded(); let mut reader = BufReader::new(socket.try_clone().unwrap()); thread::spawn(move || loop { |