From 34cc926f82f686aac16217d9fbbdf7ca20946931 Mon Sep 17 00:00:00 2001 From: adlee-was-taken Date: Sat, 11 Apr 2026 22:51:45 -0400 Subject: [PATCH] feat: scaffold Cargo workspace with idfoto-core and idfoto-cli --- .gitignore | 2 ++ Cargo.toml | 6 ++++++ crates/idfoto-cli/Cargo.toml | 17 +++++++++++++++++ crates/idfoto-cli/src/main.rs | 3 +++ crates/idfoto-core/Cargo.toml | 18 ++++++++++++++++++ crates/idfoto-core/src/error.rs | 1 + crates/idfoto-core/src/lib.rs | 1 + 7 files changed, 48 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.toml create mode 100644 crates/idfoto-cli/Cargo.toml create mode 100644 crates/idfoto-cli/src/main.rs create mode 100644 crates/idfoto-core/Cargo.toml create mode 100644 crates/idfoto-core/src/error.rs create mode 100644 crates/idfoto-core/src/lib.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c8910df --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +target/ +.superpowers/ diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..a48c0d9 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,6 @@ +[workspace] +resolver = "2" +members = [ + "crates/idfoto-core", + "crates/idfoto-cli", +] diff --git a/crates/idfoto-cli/Cargo.toml b/crates/idfoto-cli/Cargo.toml new file mode 100644 index 0000000..2f2176d --- /dev/null +++ b/crates/idfoto-cli/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "idfoto-cli" +version = "0.1.0" +edition = "2021" +description = "CLI for idfoto password manager" + +[[bin]] +name = "idfoto" +path = "src/main.rs" + +[dependencies] +idfoto-core = { path = "../idfoto-core" } +clap = { version = "4", features = ["derive"] } +anyhow = "1" +rpassword = "5" +arboard = "3" +dirs = "5" diff --git a/crates/idfoto-cli/src/main.rs b/crates/idfoto-cli/src/main.rs new file mode 100644 index 0000000..2c6e3ff --- /dev/null +++ b/crates/idfoto-cli/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("idfoto v0.1.0"); +} diff --git a/crates/idfoto-core/Cargo.toml b/crates/idfoto-core/Cargo.toml new file mode 100644 index 0000000..1ef5ad5 --- /dev/null +++ b/crates/idfoto-core/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "idfoto-core" +version = "0.1.0" +edition = "2021" +description = "Core library for idfoto password manager" + +[dependencies] +thiserror = "2" +serde = { version = "1", features = ["derive"] } +serde_json = "1" +argon2 = "0.5" +chacha20poly1305 = "0.10" +rand = "0.8" +sha2 = "0.10" +ed25519-dalek = { version = "2", features = ["rand_core"] } +image = { version = "0.25", default-features = false, features = ["jpeg"] } + +[dev-dependencies] diff --git a/crates/idfoto-core/src/error.rs b/crates/idfoto-core/src/error.rs new file mode 100644 index 0000000..63391e4 --- /dev/null +++ b/crates/idfoto-core/src/error.rs @@ -0,0 +1 @@ +// Error types will be filled in Task 2 diff --git a/crates/idfoto-core/src/lib.rs b/crates/idfoto-core/src/lib.rs new file mode 100644 index 0000000..a91e735 --- /dev/null +++ b/crates/idfoto-core/src/lib.rs @@ -0,0 +1 @@ +pub mod error;