diff --git a/Cargo.toml b/Cargo.toml index dd9852f..3a5e78a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,18 +1,18 @@ -[workspace] -members = ["crates/cadforge-cli", "crates/cadforge-view"] -resolver = "2" - [package] name = "cadforge" -version = "0.1.0-beta.1" +version = "0.1.0-beta.2" edition = "2021" description = "Architecture as Code — deterministic geometry engine for reproducible architectural design" license = "MIT" +homepage = "https://github.com/UniverLab/cadforge" +repository = "https://github.com/UniverLab/cadforge" publish = true +exclude = ["crates/**"] [dependencies] -dxf = "0.6.1" anyhow = "1.0" +clap = { version = "4.6", features = ["derive"] } +dxf = "0.6.1" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" toml = "0.8" diff --git a/README.md b/README.md index 7e722fa..1bf094b 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ cadforge is an **Architecture as Code** CLI tool and Rust library for declarativ | `cadforge watch` | Auto-rebuild on file changes | | `cadforge import ` | Import DXF into `.cf` layers + `project.toml` | | `cadforge import --layer ` | Import only one DXF layer | -| `cadforge view` | Open the dedicated `cadforge-view` viewer | +| `cadforge view` | Open the project in the configured viewer | | `cadforge view --layer ` | Open only one layer in the viewer | | `cadforge config set ` | Set global defaults (`author`, `units`) | | `cadforge config show` | Show global defaults | diff --git a/crates/cadforge-cli/Cargo.toml b/crates/cadforge-cli/Cargo.toml deleted file mode 100644 index 4419455..0000000 --- a/crates/cadforge-cli/Cargo.toml +++ /dev/null @@ -1,17 +0,0 @@ -[package] -name = "cadforge-cli" -version = "0.1.0-beta.1" -edition = "2021" -description = "CLI binary for cadforge" -license = "MIT" -publish = true - -[[bin]] -name = "cadforge" -path = "src/main.rs" - -[dependencies] -anyhow = "1.0" -clap = { version = "4.6", features = ["derive"] } -cadforge = { path = "../.." } -cadforge-view = { path = "../cadforge-view" } diff --git a/crates/cadforge-view/Cargo.toml b/crates/cadforge-view/Cargo.toml deleted file mode 100644 index 8ccbee4..0000000 --- a/crates/cadforge-view/Cargo.toml +++ /dev/null @@ -1,20 +0,0 @@ -[package] -name = "cadforge-view" -version = "0.1.0-beta.1" -edition = "2021" -description = "Vector viewer for cadforge projects" -license = "MIT" -publish = true - -[[bin]] -name = "cadforge-view" -path = "src/main.rs" - -[dependencies] -anyhow = "1.0" -arboard = "3.4" -bytemuck = { version = "1.16", features = ["derive"] } -cadforge = { path = "../.." } -pollster = "0.3" -wgpu = "0.20" -winit = "0.30" diff --git a/crates/cadforge-view/src/lib.rs b/crates/cadforge-view/src/lib.rs deleted file mode 100644 index 256dda6..0000000 --- a/crates/cadforge-view/src/lib.rs +++ /dev/null @@ -1,11 +0,0 @@ -//! cadforge-view — vector viewer for cadforge projects. -//! -//! Stub crate; the wgpu-backed renderer lands in a follow-up commit. - -use anyhow::Result; -use std::path::Path; - -pub fn run_viewer(project_dir: &Path, layer: Option<&str>) -> Result<()> { - let _ = (project_dir, layer); - Ok(()) -} diff --git a/crates/cadforge-view/src/main.rs b/crates/cadforge-view/src/main.rs deleted file mode 100644 index 9bd7b95..0000000 --- a/crates/cadforge-view/src/main.rs +++ /dev/null @@ -1,28 +0,0 @@ -use anyhow::Result; -use cadforge_view::run_viewer; -use std::env; -use std::path::PathBuf; - -fn main() -> Result<()> { - let args: Vec = env::args().skip(1).collect(); - let mut path: Option = None; - let mut layer: Option = None; - - let mut iter = args.into_iter(); - while let Some(arg) = iter.next() { - match arg.as_str() { - "--path" | "-p" => path = iter.next().map(PathBuf::from), - "--layer" | "-l" => layer = iter.next(), - other if other.starts_with("--path=") => { - path = Some(PathBuf::from(&other["--path=".len()..])); - } - other if other.starts_with("--layer=") => { - layer = Some(other["--layer=".len()..].to_string()); - } - _ => {} - } - } - - let dir = path.unwrap_or_else(|| PathBuf::from(".")); - run_viewer(&dir, layer.as_deref()) -} diff --git a/crates/cadforge-cli/src/main.rs b/src/main.rs similarity index 98% rename from crates/cadforge-cli/src/main.rs rename to src/main.rs index f21420a..cfd0516 100644 --- a/crates/cadforge-cli/src/main.rs +++ b/src/main.rs @@ -5,8 +5,8 @@ use cadforge::fmt::format_project; use cadforge::importer::import_dxf; use cadforge::preview::generate_preview; use cadforge::scaffold::{create_project, init_project}; +use cadforge::viewer::view_project; use cadforge::watch::watch_project; -use cadforge_view::run_viewer; use clap::{Parser, Subcommand}; use std::path::PathBuf; @@ -183,7 +183,7 @@ fn main() -> Result<()> { } Commands::View { path, layer } => { let dir = resolve_project_dir(path)?; - run_viewer(&dir, layer.as_deref()) + view_project(&dir, layer.as_deref()) } Commands::Config { command } => match command { ConfigCommands::Set { key, value } => config_set(&key, &value),