diff --git a/Cargo.lock b/Cargo.lock index c0627e7..f1a2b66 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -76,6 +76,23 @@ dependencies = [ "os_str_bytes", ] +[[package]] +name = "core" +version = "1.0.0-beta2" +dependencies = [ + "alpm", + "anyhow", + "clap", + "macros", + "path-absolutize", + "regex", + "serde", + "serde_derive", + "serde_json", + "serde_yaml", + "termios", +] + [[package]] name = "errno" version = "0.2.8" @@ -159,6 +176,23 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" +[[package]] +name = "macros" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "main" +version = "1.0.0-beta2" +dependencies = [ + "anyhow", + "core", +] + [[package]] name = "memchr" version = "2.5.0" @@ -184,7 +218,8 @@ dependencies = [ "alpm", "anyhow", "clap", - "pacdef_macro", + "core", + "macros", "path-absolutize", "regex", "serde", @@ -194,15 +229,6 @@ dependencies = [ "termios", ] -[[package]] -name = "pacdef_macro" -version = "0.1.0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "path-absolutize" version = "3.0.14" diff --git a/Cargo.toml b/Cargo.toml index fbae404..8a88804 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,3 +1,6 @@ +[workspace] +members = ["crates/main", "crates/macros", "crates/core"] + [package] name = "pacdef" version = "1.0.0-beta2" @@ -18,7 +21,8 @@ serde_derive = "*" serde = "*" termios = "*" -pacdef_macro = {path = "pacdef_macro", version = "*"} +macros = {path = "crates/macros", version = "*"} +core = {path = "crates/core", version = "1.0.0-beta2"} [profile.release] lto = "off" @@ -27,4 +31,5 @@ strip = true [[bin]] name = "pacdef" -path = "src/main.rs" +path = "crates/main/main.rs" + diff --git a/README.md b/README.md index b3ec5d4..88f973c 100644 --- a/README.md +++ b/README.md @@ -208,4 +208,6 @@ topgrade ## TODO -add zsh completion +* add zsh completion +* add license + diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml new file mode 100644 index 0000000..b71128b --- /dev/null +++ b/crates/core/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "core" +version = "1.0.0-beta2" +edition = "2021" +description = "declarative package manager for Arch Linux" +license = "GPLv3" +repository = "https://github.com/steven-omaha/pacdef" + +[dependencies] +alpm = "*" +anyhow = "*" +clap = "*" +path-absolutize = "*" +regex = "*" +serde_json = "*" +serde_yaml = "*" +serde_derive = "*" +serde = "*" +termios = "*" + +macros = {path = "../macros", version = "*"} diff --git a/build.rs b/crates/core/build.rs similarity index 100% rename from build.rs rename to crates/core/build.rs diff --git a/src/action.rs b/crates/core/src/action.rs similarity index 88% rename from src/action.rs rename to crates/core/src/action.rs index f3d4d26..619104d 100644 --- a/src/action.rs +++ b/crates/core/src/action.rs @@ -1,4 +1,4 @@ -use pacdef_macro::Action; +use macros::Action; #[derive(Debug, Action)] pub(crate) enum Actions { diff --git a/src/args.rs b/crates/core/src/args.rs similarity index 100% rename from src/args.rs rename to crates/core/src/args.rs diff --git a/src/backend/actual/mod.rs b/crates/core/src/backend/actual/mod.rs similarity index 100% rename from src/backend/actual/mod.rs rename to crates/core/src/backend/actual/mod.rs diff --git a/src/backend/actual/pacman.rs b/crates/core/src/backend/actual/pacman.rs similarity index 100% rename from src/backend/actual/pacman.rs rename to crates/core/src/backend/actual/pacman.rs diff --git a/src/backend/actual/rust.rs b/crates/core/src/backend/actual/rust.rs similarity index 100% rename from src/backend/actual/rust.rs rename to crates/core/src/backend/actual/rust.rs diff --git a/src/backend/backend_trait.rs b/crates/core/src/backend/backend_trait.rs similarity index 100% rename from src/backend/backend_trait.rs rename to crates/core/src/backend/backend_trait.rs diff --git a/src/backend/iter.rs b/crates/core/src/backend/iter.rs similarity index 100% rename from src/backend/iter.rs rename to crates/core/src/backend/iter.rs diff --git a/src/backend/macros.rs b/crates/core/src/backend/macros.rs similarity index 100% rename from src/backend/macros.rs rename to crates/core/src/backend/macros.rs diff --git a/src/backend/mod.rs b/crates/core/src/backend/mod.rs similarity index 90% rename from src/backend/mod.rs rename to crates/core/src/backend/mod.rs index b04b50a..c694c34 100644 --- a/src/backend/mod.rs +++ b/crates/core/src/backend/mod.rs @@ -8,7 +8,7 @@ pub(crate) use backend_trait::Backend; pub(crate) use iter::BackendIter; pub(crate) use todo_per_backend::ToDoPerBackend; -use pacdef_macro::Register; +use ::macros::Register; #[derive(Debug, Register)] pub(crate) enum Backends { diff --git a/src/backend/todo_per_backend.rs b/crates/core/src/backend/todo_per_backend.rs similarity index 100% rename from src/backend/todo_per_backend.rs rename to crates/core/src/backend/todo_per_backend.rs diff --git a/src/cmd.rs b/crates/core/src/cmd.rs similarity index 100% rename from src/cmd.rs rename to crates/core/src/cmd.rs diff --git a/src/config.rs b/crates/core/src/config.rs similarity index 100% rename from src/config.rs rename to crates/core/src/config.rs diff --git a/src/core.rs b/crates/core/src/core.rs similarity index 100% rename from src/core.rs rename to crates/core/src/core.rs diff --git a/src/env.rs b/crates/core/src/env.rs similarity index 100% rename from src/env.rs rename to crates/core/src/env.rs diff --git a/src/grouping/group.rs b/crates/core/src/grouping/group.rs similarity index 100% rename from src/grouping/group.rs rename to crates/core/src/grouping/group.rs diff --git a/src/grouping/mod.rs b/crates/core/src/grouping/mod.rs similarity index 100% rename from src/grouping/mod.rs rename to crates/core/src/grouping/mod.rs diff --git a/src/grouping/package.rs b/crates/core/src/grouping/package.rs similarity index 100% rename from src/grouping/package.rs rename to crates/core/src/grouping/package.rs diff --git a/src/grouping/section.rs b/crates/core/src/grouping/section.rs similarity index 100% rename from src/grouping/section.rs rename to crates/core/src/grouping/section.rs diff --git a/src/lib.rs b/crates/core/src/lib.rs similarity index 92% rename from src/lib.rs rename to crates/core/src/lib.rs index dd55662..e68c391 100644 --- a/src/lib.rs +++ b/crates/core/src/lib.rs @@ -17,4 +17,4 @@ pub use crate::grouping::Group; pub(crate) use crate::grouping::Package; pub use crate::search::NO_PACKAGES_FOUND; -extern crate pacdef_macro; +extern crate macros; diff --git a/src/path.rs b/crates/core/src/path.rs similarity index 100% rename from src/path.rs rename to crates/core/src/path.rs diff --git a/src/review/datastructures.rs b/crates/core/src/review/datastructures.rs similarity index 100% rename from src/review/datastructures.rs rename to crates/core/src/review/datastructures.rs diff --git a/src/review/mod.rs b/crates/core/src/review/mod.rs similarity index 100% rename from src/review/mod.rs rename to crates/core/src/review/mod.rs diff --git a/src/review/strategy.rs b/crates/core/src/review/strategy.rs similarity index 100% rename from src/review/strategy.rs rename to crates/core/src/review/strategy.rs diff --git a/src/search.rs b/crates/core/src/search.rs similarity index 100% rename from src/search.rs rename to crates/core/src/search.rs diff --git a/src/ui.rs b/crates/core/src/ui.rs similarity index 100% rename from src/ui.rs rename to crates/core/src/ui.rs diff --git a/pacdef_macro/Cargo.toml b/crates/macros/Cargo.toml similarity index 93% rename from pacdef_macro/Cargo.toml rename to crates/macros/Cargo.toml index 9c38412..fcbfe16 100644 --- a/pacdef_macro/Cargo.toml +++ b/crates/macros/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "pacdef_macro" +name = "macros" version = "0.1.0" edition = "2021" description = "procedural macros for pacdef" diff --git a/pacdef_macro/src/action.rs b/crates/macros/src/action.rs similarity index 93% rename from pacdef_macro/src/action.rs rename to crates/macros/src/action.rs index f12a6a5..75e6369 100644 --- a/pacdef_macro/src/action.rs +++ b/crates/macros/src/action.rs @@ -14,8 +14,8 @@ pub fn action(input: TokenStream) -> TokenStream { panic!("`Register` can only be used on enums"); }; - let variant_description = generate_variant_description(&enum_data); - let variant_constants = generate_variant_constants(&name, &enum_data); + let variant_description = generate_variant_description(enum_data); + let variant_constants = generate_variant_constants(name, enum_data); let expanded = compile_output(name, variant_description, variant_constants); diff --git a/pacdef_macro/src/lib.rs b/crates/macros/src/lib.rs similarity index 100% rename from pacdef_macro/src/lib.rs rename to crates/macros/src/lib.rs diff --git a/pacdef_macro/src/register.rs b/crates/macros/src/register.rs similarity index 100% rename from pacdef_macro/src/register.rs rename to crates/macros/src/register.rs diff --git a/crates/main/Cargo.toml b/crates/main/Cargo.toml new file mode 100644 index 0000000..dc4109a --- /dev/null +++ b/crates/main/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "main" +version = "1.0.0-beta2" +edition = "2021" +description = "declarative package manager for Arch Linux" +license = "GPLv3" +repository = "https://github.com/steven-omaha/pacdef" + +[[bin]] +name = "pacdef" +path = "main.rs" + +[dependencies] +anyhow = "*" +core = { path = "../core", version = "1.0.0-beta2" } diff --git a/src/main.rs b/crates/main/main.rs similarity index 90% rename from src/main.rs rename to crates/main/main.rs index 92b6808..c9ca06f 100644 --- a/src/main.rs +++ b/crates/main/main.rs @@ -2,7 +2,7 @@ use std::process::{ExitCode, Termination}; use anyhow::{Context, Result}; -use pacdef::{args, Config, Group, Pacdef}; +use core::{args, Config, Group, Pacdef}; fn main() -> ExitCode { handle_final_result(main_inner()) @@ -16,7 +16,7 @@ fn handle_final_result(result: Result<()>) -> ExitCode { Err(ref e) => { let msg = e.root_cause().to_string(); - if msg == pacdef::NO_PACKAGES_FOUND { + if msg == core::NO_PACKAGES_FOUND { ExitCode::FAILURE } else { result.report() diff --git a/pacdef_macro/Cargo.lock b/pacdef_macro/Cargo.lock deleted file mode 100644 index 6f1e7a9..0000000 --- a/pacdef_macro/Cargo.lock +++ /dev/null @@ -1,47 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "pacdef_macro" -version = "0.1.0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "proc-macro2" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "syn" -version = "1.0.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "unicode-ident" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"