-rw-r--r--.gitignore2
-rw-r--r--Cargo.toml9
-rw-r--r--src/main.rs21
3 files changed, 32 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..96ef6c0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/target
+Cargo.lock
diff --git a/Cargo.toml b/Cargo.toml
new file mode 100644
index 0000000..5fd5968
--- /dev/null
+++ b/Cargo.toml
@@ -0,0 +1,9 @@
+[package]
+name = "hew"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+fimg = { version = "0.4.22", features = ["save"], default-features = false }
diff --git a/src/main.rs b/src/main.rs
new file mode 100644
index 0000000..2318b7a
--- /dev/null
+++ b/src/main.rs
@@ -0,0 +1,21 @@
+use std::process::ExitCode;
+
+fn main() -> ExitCode {
+ let mut args = std::env::args().skip(1);
+ let Some(input) = args.next() else {
+ eprintln!("usage: hew <in> <out>");
+ return ExitCode::FAILURE;
+ };
+ let Some(output) = args.next() else {
+ eprintln!("usage: hew <in> <out>");
+ return ExitCode::FAILURE;
+ };
+
+ let img = fimg::DynImage::open(input);
+ println!("{}x{}", img.width(), img.height());
+ match std::fs::write(output, img.bytes()) {
+ Ok(_) => return ExitCode::SUCCESS,
+ Err(_) => eprintln!("usage: hew <in> <valid path output>"),
+ }
+ ExitCode::FAILURE
+}