From 1ec80c00fc717d2cc0aa213e4bed572b3fea5496 Mon Sep 17 00:00:00 2001 From: "benjamin.747" Date: Mon, 12 Aug 2024 19:18:55 +0800 Subject: [PATCH 1/2] update action in clippy --- .github/workflows/base.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/base.yml b/.github/workflows/base.yml index 82fe88d08..d5c25a93d 100644 --- a/.github/workflows/base.yml +++ b/.github/workflows/base.yml @@ -54,6 +54,7 @@ jobs: libgtk-3-dev \ libayatana-appindicator3-dev \ librsvg2-dev + - run: cargo build - run: rustup component add clippy - uses: actions-rs/cargo@v1 with: From f607b46a4e781c378c8ded6719ed7b9f851cc419 Mon Sep 17 00:00:00 2001 From: "benjamin.747" Date: Tue, 13 Aug 2024 16:06:33 +0800 Subject: [PATCH 2/2] Split monorepo logic into mono modules --- Cargo.toml | 10 +- README.md | 2 +- common/src/model.rs | 3 + docs/images/Mega_Bin_and_Modules.png | Bin 0 -> 1014689 bytes gateway/Cargo.toml | 22 +- gateway/src/api/github_router.rs | 4 +- gateway/src/api/mod.rs | 52 +--- gateway/src/api/ztm_router.rs | 14 +- gateway/src/https_server.rs | 226 ++++----------- gateway/src/init.rs | 9 - gateway/src/lib.rs | 4 - mega/Cargo.toml | 10 +- mega/src/commands/init.rs | 5 +- mega/src/commands/service/multi.rs | 16 +- mega/src/commands/service/ssh.rs | 8 +- mono/BUCK | 5 + mono/Cargo.toml | 71 +++++ mono/README.md | 1 + mono/config.toml | 93 ++++++ {gateway => mono}/src/api/api_router.rs | 48 +-- mono/src/api/mod.rs | 49 ++++ {gateway => mono}/src/api/mr_router.rs | 12 +- {gateway => mono}/src/api/oauth/github.rs | 0 {gateway => mono}/src/api/oauth/mod.rs | 0 {gateway => mono}/src/api/oauth/model.rs | 0 mono/src/build.rs | 12 + mono/src/cli.rs | 113 ++++++++ mono/src/commands/init.rs | 27 ++ mono/src/commands/mod.rs | 24 ++ mono/src/commands/service/http.rs | 23 ++ mono/src/commands/service/https.rs | 22 ++ mono/src/commands/service/mod.rs | 48 +++ mono/src/commands/service/multi.rs | 88 ++++++ mono/src/commands/service/ssh.rs | 22 ++ {gateway => mono}/src/git_protocol/http.rs | 0 {gateway => mono}/src/git_protocol/mod.rs | 0 {gateway => mono}/src/git_protocol/ssh.rs | 0 {gateway => mono}/src/lfs.rs | 2 +- mono/src/lib.rs | 18 ++ mono/src/main.rs | 30 ++ mono/src/server/https_server.rs | 273 ++++++++++++++++++ mono/src/server/mod.rs | 2 + .../src => mono/src/server}/ssh_server.rs | 0 43 files changed, 1057 insertions(+), 311 deletions(-) create mode 100644 docs/images/Mega_Bin_and_Modules.png delete mode 100644 gateway/src/init.rs create mode 100644 mono/BUCK create mode 100644 mono/Cargo.toml create mode 100644 mono/README.md create mode 100644 mono/config.toml rename {gateway => mono}/src/api/api_router.rs (75%) create mode 100644 mono/src/api/mod.rs rename {gateway => mono}/src/api/mr_router.rs (90%) rename {gateway => mono}/src/api/oauth/github.rs (100%) rename {gateway => mono}/src/api/oauth/mod.rs (100%) rename {gateway => mono}/src/api/oauth/model.rs (100%) create mode 100644 mono/src/build.rs create mode 100644 mono/src/cli.rs create mode 100644 mono/src/commands/init.rs create mode 100644 mono/src/commands/mod.rs create mode 100644 mono/src/commands/service/http.rs create mode 100644 mono/src/commands/service/https.rs create mode 100644 mono/src/commands/service/mod.rs create mode 100644 mono/src/commands/service/multi.rs create mode 100644 mono/src/commands/service/ssh.rs rename {gateway => mono}/src/git_protocol/http.rs (100%) rename {gateway => mono}/src/git_protocol/mod.rs (100%) rename {gateway => mono}/src/git_protocol/ssh.rs (100%) rename {gateway => mono}/src/lfs.rs (99%) create mode 100644 mono/src/lib.rs create mode 100644 mono/src/main.rs create mode 100644 mono/src/server/https_server.rs create mode 100644 mono/src/server/mod.rs rename {gateway/src => mono/src/server}/ssh_server.rs (100%) diff --git a/Cargo.toml b/Cargo.toml index 9fb4a3965..e44caeaf1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,6 @@ [workspace] members = [ + "mono", "mega", "gateway", "common", @@ -16,7 +17,7 @@ members = [ "lunar/src-tauri", "atlas", ] -default-members = ["mega", "libra", "aries"] +default-members = ["mega", "mono", "libra", "aries"] exclude = ["craft"] resolver = "1" @@ -34,6 +35,8 @@ neptune = { path = "neptune" } saturn = { path = "saturn" } taurus = { path = "taurus" } mega = { path = "mega" } +mono = { path = "mono" } + anyhow = "1.0.86" serde = "1.0.205" serde_json = "1.0.122" @@ -75,3 +78,8 @@ shadow-rs = "0.31.1" reqwest = "0.12.5" lazy_static = "1.5.0" uuid = "1.10.0" +regex = "1.10.4" +ed25519-dalek = "2.1.1" +ctrlc = "3.4.4" +git2 = "0.19.0" +tempfile = "3.10.1" diff --git a/README.md b/README.md index fe8788020..dfedf93d6 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ For now, we are developing on the macOS and Arch Linux. And quick start manuel i ### Quick Review of Architecture -![Mega Architect](docs/images/architect.svg) +![Mega Architect](docs/images/Mega_Bin_and_Modules.png) 1. **mega** - The main entry of Mega. 2. **gateway** - The Gateway module is responsible for handling `git`, `git-lfs` and web UI requests through the HTTP and SSH protocol. More information on the [Gateway](gateway/README.md). diff --git a/common/src/model.rs b/common/src/model.rs index 58180b561..3a443472b 100644 --- a/common/src/model.rs +++ b/common/src/model.rs @@ -5,7 +5,10 @@ use serde::{Deserialize, Serialize}; pub struct CommonOptions { #[arg(long, default_value_t = String::from("127.0.0.1"))] pub host: String, +} +#[derive(Args, Clone, Debug)] +pub struct ZtmOptions { #[arg(long, default_value_t = 7777)] pub ztm_agent_port: u16, diff --git a/docs/images/Mega_Bin_and_Modules.png b/docs/images/Mega_Bin_and_Modules.png new file mode 100644 index 0000000000000000000000000000000000000000..f939c112894bb9e170659b7a72bcb52f94332ff7 GIT binary patch literal 1014689 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