fn main()

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");
    }
}