From e26bcb45f9444462730e2a35de66744045983f4d Mon Sep 17 00:00:00 2001 From: gennyble Date: Sun, 16 Mar 2025 05:11:09 -0500 Subject: parrot --- parrot/Cargo.toml | 6 ++++++ parrot/src/main.rs | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 parrot/Cargo.toml create mode 100644 parrot/src/main.rs diff --git a/parrot/Cargo.toml b/parrot/Cargo.toml new file mode 100644 index 0000000..1205841 --- /dev/null +++ b/parrot/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "parrot" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/parrot/src/main.rs b/parrot/src/main.rs new file mode 100644 index 0000000..d3fe60f --- /dev/null +++ b/parrot/src/main.rs @@ -0,0 +1,33 @@ +use std::{ + env, + fs::File, + io::{BufWriter, Read, Write}, +}; + +fn main() { + println!("Content-Type: text/plain\n"); + + let mut bw = BufWriter::new(File::create("/tmp/parrot-debug").unwrap()); + + for (key, value) in env::vars() { + let log = format!("{key}: {value}\n"); + print!("{log}"); + bw.write_all(log.as_bytes()).unwrap(); + } + + let mut buf = vec![]; + std::io::stdin().read_to_end(&mut buf).unwrap(); + + match std::str::from_utf8(&buf) { + Err(_e) => { + let log = format!("\n(binary data; {} bytes)\n", buf.len()); + print!("{log}"); + bw.write_all(log.as_bytes()).unwrap(); + } + Ok(s) => { + let log = format!("\n{s}\n"); + print!("{log}"); + bw.write_all(log.as_bytes()).unwrap(); + } + } +} -- cgit 1.4.1-3-g733a5