Radish alpha
r
rad:z3qg5TKmN83afz2fj9z3fQjU8vaYE
Radicle CI adapter for native CI
Radicle
Git
refactor: move response writing to a function
Lars Wirzenius committed 2 years ago
commit 7063304e6f6197ff674c6c5dae1b15cb223a70c8
parent 2a88f67
1 file changed +12 -12
modified src/main.rs
@@ -64,10 +64,7 @@ fn fallible_main() -> Result<(), NativeError> {
        info!("Request to trigger CI on {}, {}", repo, commit);
        run(run_id, storage, repo, commit, &src, &log)?;
    } else {
-
        let error = Response::error("first request was not Trigger");
-
        error
-
            .to_writer(std::io::stdout())
-
            .map_err(|e| NativeError::WriteResponse(error.clone(), e))?;
+
        write_response(&Response::error("first request was not Trigger"))?;
    }

    info!("radicle-native-ci ends");
@@ -96,6 +93,13 @@ fn read_request() -> Result<Request, NativeError> {
    Ok(req)
}

+
/// Write response to stdout.
+
fn write_response(resp: &Response) -> Result<(), NativeError> {
+
    resp.to_writer(std::io::stdout())
+
        .map_err(|e| NativeError::WriteResponse(resp.clone(), e))?;
+
    Ok(())
+
}
+

/// Perform the CI run.
fn run(
    run_id: Uuid,
@@ -118,10 +122,9 @@ fn run(
    )?;
    logmsg(log_filename, &mut log, format!("=== Commit: {}\n", commit))?;

-
    let first = Response::triggered(RunId::from(run_id.to_string().as_str()));
-
    first
-
        .to_writer(std::io::stdout())
-
        .map_err(|e| NativeError::WriteResponse(first.clone(), e))?;
+
    write_response(&Response::triggered(RunId::from(
+
        run_id.to_string().as_str(),
+
    )))?;

    let repo = storage.join(repo.canonical());
    debug!("repo path: {}", repo.display());
@@ -145,10 +148,7 @@ fn run(
    let snippet = format!("set -xeuo pipefail\n{}", &runspec.shell);
    runcmd(log_filename, &mut log, &["bash", "-c", &snippet], src)?;

-
    let second = Response::finished(RunResult::Success);
-
    second
-
        .to_writer(std::io::stdout())
-
        .map_err(|e| NativeError::WriteResponse(second.clone(), e))?;
+
    write_response(&Response::finished(RunResult::Success))?;

    logmsg(
        log_filename,