From 85bc353a5a494cc6b3d7bb130ab9d86df0f077db Mon Sep 17 00:00:00 2001 From: 409 <409dev@protonmail.com> Date: Mon, 14 Jul 2025 03:11:27 +0200 Subject: [PATCH] split backend into `bin` and `lib` --- backend/Cargo.toml | 8 +++++ backend/src/bin/backend/main.rs | 19 ++++++++++++ backend/src/{ => lib}/api/mod.rs | 0 backend/src/{ => lib}/api/state.rs | 0 .../{ => lib}/api/warrens/create_directory.rs | 0 .../{ => lib}/api/warrens/delete_directory.rs | 0 .../{ => lib}/api/warrens/get_warren_path.rs | 0 .../src/{ => lib}/api/warrens/list_warrens.rs | 0 backend/src/{ => lib}/api/warrens/mod.rs | 0 .../src/{ => lib}/api/warrens/upload_files.rs | 0 backend/src/{ => lib}/db/mod.rs | 0 backend/src/{ => lib}/error.rs | 2 -- backend/src/{ => lib}/fs/dir.rs | 0 backend/src/{ => lib}/fs/file.rs | 0 backend/src/{ => lib}/fs/mod.rs | 0 backend/src/lib/lib.rs | 10 +++++++ backend/src/{ => lib}/server.rs | 2 +- backend/src/{ => lib}/warrens/db.rs | 0 backend/src/{ => lib}/warrens/mod.rs | 0 backend/src/main.rs | 29 ------------------- 20 files changed, 38 insertions(+), 32 deletions(-) create mode 100644 backend/src/bin/backend/main.rs rename backend/src/{ => lib}/api/mod.rs (100%) rename backend/src/{ => lib}/api/state.rs (100%) rename backend/src/{ => lib}/api/warrens/create_directory.rs (100%) rename backend/src/{ => lib}/api/warrens/delete_directory.rs (100%) rename backend/src/{ => lib}/api/warrens/get_warren_path.rs (100%) rename backend/src/{ => lib}/api/warrens/list_warrens.rs (100%) rename backend/src/{ => lib}/api/warrens/mod.rs (100%) rename backend/src/{ => lib}/api/warrens/upload_files.rs (100%) rename backend/src/{ => lib}/db/mod.rs (100%) rename backend/src/{ => lib}/error.rs (98%) rename backend/src/{ => lib}/fs/dir.rs (100%) rename backend/src/{ => lib}/fs/file.rs (100%) rename backend/src/{ => lib}/fs/mod.rs (100%) create mode 100644 backend/src/lib/lib.rs rename backend/src/{ => lib}/server.rs (95%) rename backend/src/{ => lib}/warrens/db.rs (100%) rename backend/src/{ => lib}/warrens/mod.rs (100%) delete mode 100644 backend/src/main.rs diff --git a/backend/Cargo.toml b/backend/Cargo.toml index 8585b29..fc6c56e 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -3,6 +3,14 @@ name = "warren" version = "0.1.0" edition = "2024" +[lib] +name = "warren" +path = "src/lib/lib.rs" + +[[bin]] +name = "warren_backend" +path = "src/bin/backend/main.rs" + [dependencies] axum = { version = "0.8.4", features = ["multipart", "query"] } dotenv = "0.15.0" diff --git a/backend/src/bin/backend/main.rs b/backend/src/bin/backend/main.rs new file mode 100644 index 0000000..72e7057 --- /dev/null +++ b/backend/src/bin/backend/main.rs @@ -0,0 +1,19 @@ +use warren::{server, Result}; + +#[tokio::main] +async fn main() -> Result<()> { + dotenv::dotenv().ok(); + + env_logger::builder() + .format_target(false) + .filter_level(log::LevelFilter::Info) + .parse_env("LOG_LEVEL") + .parse_default_env() + .init(); + + let pool = warren::db::get_postgres_pool().await?; + + server::start(pool).await?; + + Ok(()) +} diff --git a/backend/src/api/mod.rs b/backend/src/lib/api/mod.rs similarity index 100% rename from backend/src/api/mod.rs rename to backend/src/lib/api/mod.rs diff --git a/backend/src/api/state.rs b/backend/src/lib/api/state.rs similarity index 100% rename from backend/src/api/state.rs rename to backend/src/lib/api/state.rs diff --git a/backend/src/api/warrens/create_directory.rs b/backend/src/lib/api/warrens/create_directory.rs similarity index 100% rename from backend/src/api/warrens/create_directory.rs rename to backend/src/lib/api/warrens/create_directory.rs diff --git a/backend/src/api/warrens/delete_directory.rs b/backend/src/lib/api/warrens/delete_directory.rs similarity index 100% rename from backend/src/api/warrens/delete_directory.rs rename to backend/src/lib/api/warrens/delete_directory.rs diff --git a/backend/src/api/warrens/get_warren_path.rs b/backend/src/lib/api/warrens/get_warren_path.rs similarity index 100% rename from backend/src/api/warrens/get_warren_path.rs rename to backend/src/lib/api/warrens/get_warren_path.rs diff --git a/backend/src/api/warrens/list_warrens.rs b/backend/src/lib/api/warrens/list_warrens.rs similarity index 100% rename from backend/src/api/warrens/list_warrens.rs rename to backend/src/lib/api/warrens/list_warrens.rs diff --git a/backend/src/api/warrens/mod.rs b/backend/src/lib/api/warrens/mod.rs similarity index 100% rename from backend/src/api/warrens/mod.rs rename to backend/src/lib/api/warrens/mod.rs diff --git a/backend/src/api/warrens/upload_files.rs b/backend/src/lib/api/warrens/upload_files.rs similarity index 100% rename from backend/src/api/warrens/upload_files.rs rename to backend/src/lib/api/warrens/upload_files.rs diff --git a/backend/src/db/mod.rs b/backend/src/lib/db/mod.rs similarity index 100% rename from backend/src/db/mod.rs rename to backend/src/lib/db/mod.rs diff --git a/backend/src/error.rs b/backend/src/lib/error.rs similarity index 98% rename from backend/src/error.rs rename to backend/src/lib/error.rs index 0d8d2c6..3e37232 100644 --- a/backend/src/error.rs +++ b/backend/src/lib/error.rs @@ -1,5 +1,3 @@ -use std::error::Error; - use axum::{ body::Body, extract::multipart::MultipartError, diff --git a/backend/src/fs/dir.rs b/backend/src/lib/fs/dir.rs similarity index 100% rename from backend/src/fs/dir.rs rename to backend/src/lib/fs/dir.rs diff --git a/backend/src/fs/file.rs b/backend/src/lib/fs/file.rs similarity index 100% rename from backend/src/fs/file.rs rename to backend/src/lib/fs/file.rs diff --git a/backend/src/fs/mod.rs b/backend/src/lib/fs/mod.rs similarity index 100% rename from backend/src/fs/mod.rs rename to backend/src/lib/fs/mod.rs diff --git a/backend/src/lib/lib.rs b/backend/src/lib/lib.rs new file mode 100644 index 0000000..da52c98 --- /dev/null +++ b/backend/src/lib/lib.rs @@ -0,0 +1,10 @@ +use error::AppError; + +pub mod api; +pub mod db; +pub mod error; +pub mod fs; +pub mod server; +pub mod warrens; + +pub type Result = std::result::Result; diff --git a/backend/src/server.rs b/backend/src/lib/server.rs similarity index 95% rename from backend/src/server.rs rename to backend/src/lib/server.rs index f19c9b3..e29ad7f 100644 --- a/backend/src/server.rs +++ b/backend/src/lib/server.rs @@ -15,7 +15,7 @@ use crate::{ pub type Router = axum::Router; -pub(super) async fn start(pool: Pool) -> Result<()> { +pub async fn start(pool: Pool) -> Result<()> { let cors_origin = env::var("CORS_ALLOW_ORIGIN").unwrap_or("*".to_string()); let serve_dir = std::env::var("SERVE_DIRECTORY")?; diff --git a/backend/src/warrens/db.rs b/backend/src/lib/warrens/db.rs similarity index 100% rename from backend/src/warrens/db.rs rename to backend/src/lib/warrens/db.rs diff --git a/backend/src/warrens/mod.rs b/backend/src/lib/warrens/mod.rs similarity index 100% rename from backend/src/warrens/mod.rs rename to backend/src/lib/warrens/mod.rs diff --git a/backend/src/main.rs b/backend/src/main.rs deleted file mode 100644 index c27f69e..0000000 --- a/backend/src/main.rs +++ /dev/null @@ -1,29 +0,0 @@ -use db::get_postgres_pool; -use error::AppError; - -pub mod api; -pub mod db; -pub mod error; -pub mod fs; -mod server; -pub mod warrens; - -pub type Result = std::result::Result; - -#[tokio::main] -async fn main() -> std::result::Result<(), AppError> { - dotenv::dotenv().ok(); - - env_logger::builder() - .format_target(false) - .filter_level(log::LevelFilter::Info) - .parse_env("LOG_LEVEL") - .parse_default_env() - .init(); - - let pool = get_postgres_pool().await?; - - server::start(pool).await?; - - Ok(()) -}