X-Git-Url: http://git.scottworley.com/tattlekey/blobdiff_plain/3ad889296b9111d1a6864554a1bb9716812a9462..5f5768318f897a20464ca177b5de64157afe0938:/server/src/main.rs diff --git a/server/src/main.rs b/server/src/main.rs index a186abd..e7351db 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -20,6 +20,7 @@ use std::net::UdpSocket; use std::time::{Duration, SystemTime}; const MESSAGE_SIZE: usize = 12; +const LOGFILENAME: &str = "log.csv"; #[derive(Eq, Debug, Hash, PartialEq, Serialize)] struct MessageKey { @@ -79,15 +80,22 @@ impl Range { } } -fn main() { +fn open_log_for_writing() -> csv::Writer { + let log_file_exists = std::path::Path::new(LOGFILENAME).exists(); let logfile = std::fs::OpenOptions::new() - .create(true) + .create_new(!log_file_exists) .append(true) - .open("log.csv") + .open(LOGFILENAME) .expect("Coudln't open log file"); - let mut log = csv::Writer::from_writer(logfile); - let mut presses = HashMap::::new(); + csv::WriterBuilder::new() + .has_headers(!log_file_exists) + .from_writer(logfile) +} + +fn main() { let socket = UdpSocket::bind("0.0.0.0:29803").expect("couldn't bind to address"); + let mut presses = HashMap::::new(); + let mut log = open_log_for_writing(); loop { let mut buf = [0; MESSAGE_SIZE]; match socket.recv_from(&mut buf) {