diff options
author | gennyble <gen@nyble.dev> | 2025-03-16 05:11:09 -0500 |
---|---|---|
committer | gennyble <gen@nyble.dev> | 2025-03-16 05:11:09 -0500 |
commit | e26bcb45f9444462730e2a35de66744045983f4d (patch) | |
tree | 489382dbf84954a9673c5bbe863628485dc850e0 | |
parent | f4b360158d420d496a94e2f3c52d9a56c4ea8475 (diff) | |
download | corgi-e26bcb45f9444462730e2a35de66744045983f4d.tar.gz corgi-e26bcb45f9444462730e2a35de66744045983f4d.zip |
parrot
-rw-r--r-- | parrot/Cargo.toml | 6 | ||||
-rw-r--r-- | parrot/src/main.rs | 33 |
2 files changed, 39 insertions, 0 deletions
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(); + } + } +} |