aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mumctl/src/main.rs4
-rw-r--r--mumd/src/main.rs4
-rw-r--r--mumlib/src/lib.rs30
3 files changed, 25 insertions, 13 deletions
diff --git a/mumctl/src/main.rs b/mumctl/src/main.rs
index 4443f46..f4b8139 100644
--- a/mumctl/src/main.rs
+++ b/mumctl/src/main.rs
@@ -17,7 +17,7 @@ macro_rules! err_print {
}
fn main() {
- setup_logger();
+ setup_logger(io::stderr(), true);
let mut app = App::new("mumctl")
.setting(AppSettings::ArgRequiredElseHelp)
@@ -159,7 +159,7 @@ fn send_command(command: Command) -> mumlib::error::Result<Option<CommandRespons
let (tx_client, rx_client) =
ipc::channel::<mumlib::error::Result<Option<CommandResponse>>>().unwrap();
- let server_name = fs::read_to_string("/var/tmp/mumd-oneshot").unwrap(); //TODO don't panic
+ let server_name = fs::read_to_string(mumlib::SOCKET_PATH).unwrap(); //TODO don't panic
let tx0 = IpcSender::connect(server_name).unwrap();
diff --git a/mumd/src/main.rs b/mumd/src/main.rs
index 5ae077a..75726f8 100644
--- a/mumd/src/main.rs
+++ b/mumd/src/main.rs
@@ -21,7 +21,7 @@ use tokio::task::spawn_blocking;
#[tokio::main]
async fn main() {
- setup_logger();
+ setup_logger(std::io::stderr(), true);
// Oneshot channel for setting UDP CryptState from control task
// For simplicity we don't deal with re-syncing, real applications would have to.
@@ -73,7 +73,7 @@ fn receive_oneshot_commands(
)>,
String,
) = IpcOneShotServer::new().unwrap();
- fs::write("/var/tmp/mumd-oneshot", &server_name).unwrap();
+ fs::write(mumlib::SOCKET_PATH, &server_name).unwrap();
debug!("Listening to {}", server_name);
// receive command and response channel
diff --git a/mumlib/src/lib.rs b/mumlib/src/lib.rs
index d989a7e..b26db13 100644
--- a/mumlib/src/lib.rs
+++ b/mumlib/src/lib.rs
@@ -5,19 +5,31 @@ pub mod state;
use colored::*;
use log::*;
-pub fn setup_logger() {
+pub const SOCKET_PATH: &str = "/var/tmp/mumd";
+
+pub fn setup_logger<T: Into<fern::Output>>(target: T, color: bool) {
fern::Dispatch::new()
- .format(|out, message, record| {
+ .format(move |out, message, record| {
let message = message.to_string();
out.finish(format_args!(
"{} {}:{}{}{}",
//TODO runtime flag that disables color
- match record.level() {
- Level::Error => "ERROR".red(),
- Level::Warn => "WARN ".yellow(),
- Level::Info => "INFO ".normal(),
- Level::Debug => "DEBUG".green(),
- Level::Trace => "TRACE".normal(),
+ if color {
+ match record.level() {
+ Level::Error => "ERROR".red(),
+ Level::Warn => "WARN ".yellow(),
+ Level::Info => "INFO ".normal(),
+ Level::Debug => "DEBUG".green(),
+ Level::Trace => "TRACE".normal(),
+ }
+ } else {
+ match record.level() {
+ Level::Error => "ERROR",
+ Level::Warn => "WARN ",
+ Level::Info => "INFO ",
+ Level::Debug => "DEBUG",
+ Level::Trace => "TRACE",
+ }.normal()
},
record.file().unwrap(),
record.line().unwrap(),
@@ -30,7 +42,7 @@ pub fn setup_logger() {
))
})
.level(log::LevelFilter::Debug)
- .chain(std::io::stderr())
+ .chain(target.into())
.apply()
.unwrap();
}