in core/rust1.34/src/action_loop/src/main.rs [42:76]
fn main() {
let mut fd3 = unsafe { File::from_raw_fd(3) };
let stdin = stdin();
for line in stdin.lock().lines() {
let buffer: String = line.expect("Error reading line");
let parsed_input: Result<Input, Error> = serde_json::from_str(&buffer);
match parsed_input {
Ok(input) => {
for (key, val) in input.environment {
if let Some(string_value) = val.as_str() {
env::set_var(format!("__OW_{}", key.to_uppercase()), string_value);
} else {
env::set_var(format!("__OW_{}", key.to_uppercase()), val.to_string());
};
}
match actionMain(input.value) {
Ok(action_result) => match serde_json::to_string(&action_result) {
Ok(response) => {
writeln!(&mut fd3, "{}", response).expect("Error writing on fd3")
}
Err(err) => log_error(&mut fd3, err),
},
Err(err) => {
log_error(&mut fd3, err);
}
}
}
Err(err) => {
log_error(&mut fd3, err);
}
}
stdout().flush().expect("Error flushing stdout");
stderr().flush().expect("Error flushing stderr");
}
}