From e26bcb45f9444462730e2a35de66744045983f4d Mon Sep 17 00:00:00 2001
From: gennyble <gen@nyble.dev>
Date: Sun, 16 Mar 2025 05:11:09 -0500
Subject: parrot

---
 parrot/src/main.rs | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 parrot/src/main.rs

(limited to 'parrot/src')

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