Radish alpha
r
Radicle CI broker
Radicle
Git (anonymous pull)
Log in to clone via SSH
feat: teach synthetic-event to repeat events
Lars Wirzenius committed 1 year ago
commit fc5a466426abc032a065364ea7b27be66def76be
parent 61cbf9e23649a1c5a8aa39871ac27b188490aa29
1 file changed +10 -1
modified src/bin/synthetic-events.rs
@@ -37,6 +37,9 @@ fn main() -> anyhow::Result<()> {

        log(&mut f, "daemon starts\n".into());

+
        let repeat = args.repeat.unwrap_or(1);
+
        log(&mut f, format!("repeat={repeat}\n"));
+

        let mut events = vec![];
        for filename in args.events.iter() {
            log(
@@ -61,7 +64,9 @@ fn main() -> anyhow::Result<()> {
            log(&mut f, "daemon accepted connection\n".into());
            let mut stream = stream?;
            for e in events.iter() {
-
                stream.write_all(e.as_bytes())?;
+
                for _ in 0..repeat {
+
                    stream.write_all(e.as_bytes())?;
+
                }
                log(&mut f, "daemon sent a message\n".into());
            }
            log(&mut f, "daemon sent all messages\n".into());
@@ -83,10 +88,12 @@ fn main() -> anyhow::Result<()> {
            remove_file(&args.socket)?;
        }
        eprintln!("launching daemon");
+
        let repeat = args.repeat.unwrap_or(1);
        Command::new(exe)
            .arg("--daemon")
            .arg("--log")
            .arg(args.log.unwrap_or(PathBuf::from("/dev/null")))
+
            .arg(&format!("--repeat={repeat}"))
            .arg(&args.socket)
            .args(&args.events)
            .stdin(Stdio::null())
@@ -110,6 +117,8 @@ struct Args {
    daemon: bool,
    #[clap(long)]
    log: Option<PathBuf>,
+
    #[clap(long)]
+
    repeat: Option<usize>,
    socket: PathBuf,
    events: Vec<PathBuf>,
}