Skip to content

Commit

Permalink
Fix: don't display duplicate file names for detected changes
Browse files Browse the repository at this point in the history
  • Loading branch information
breki committed Apr 25, 2022
1 parent 9965f47 commit 7723678
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
16 changes: 10 additions & 6 deletions tcr/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ mod watch;

use notify::{raw_watcher, RawEvent, RecursiveMode, Watcher};
use regex::RegexSet;
use std::collections::HashSet;
use std::sync::mpsc::{channel, Receiver, Sender};
use std::sync::{Arc, Mutex};
use std::thread;
Expand All @@ -17,7 +18,7 @@ use watch::SourceCodeUpdateEvent;
fn collect_watch_events(
files_watch_enabled: Arc<Mutex<bool>>,
rx_watch_events: Receiver<RawEvent>,
collected_events: Arc<Mutex<Vec<watch::SourceCodeUpdateEvent>>>,
collected_events: Arc<Mutex<HashSet<watch::SourceCodeUpdateEvent>>>,
tx_watch_events_starter: Sender<u32>,
matching_files: RegexSet,
) {
Expand All @@ -32,11 +33,14 @@ fn collect_watch_events(
&matching_files,
) {
Some(event_data) => {
println!("{}", event_data);
if !collected_events.contains(&event_data) {
println!("{}", event_data);
}

if collected_events.len() == 0 {
tx_watch_events_starter.send(1).unwrap();
}
collected_events.push(event_data);
collected_events.insert(event_data);
}
None => (),
}
Expand All @@ -52,7 +56,7 @@ fn collect_watch_events(
fn run_tests_on_files_update(
files_watch_enabled: Arc<Mutex<bool>>,
rx_watch_events_starter: Receiver<u32>,
collected_events: Arc<Mutex<Vec<SourceCodeUpdateEvent>>>,
collected_events: Arc<Mutex<HashSet<SourceCodeUpdateEvent>>>,
delay: Duration,
test_step: Option<String>,
test_cmd_args: Option<Vec<String>>,
Expand Down Expand Up @@ -131,8 +135,8 @@ fn main() {
let files_watch_enabled: Arc<Mutex<bool>> = Arc::new(Mutex::new(true));
let files_watch_enabled_clone = Arc::clone(&files_watch_enabled);

let collected_events: Arc<Mutex<Vec<watch::SourceCodeUpdateEvent>>> =
Arc::new(Mutex::new(Vec::new()));
let collected_events: Arc<Mutex<HashSet<watch::SourceCodeUpdateEvent>>> =
Arc::new(Mutex::new(HashSet::new()));
let collected_events_clone = Arc::clone(&collected_events);
thread::spawn(move || {
run_tests_on_files_update(
Expand Down
1 change: 1 addition & 0 deletions tcr/src/watch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ use std::path::Path;

use crate::paths;

#[derive(PartialEq, Eq, Hash)]
pub struct SourceCodeUpdateEvent {
path: String,
}
Expand Down

0 comments on commit 7723678

Please sign in to comment.