diff --git a/Cargo.lock b/Cargo.lock index f12be78..a1db05e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -48,9 +48,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" +checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" dependencies = [ "anstyle", "anstyle-parse", @@ -62,36 +62,36 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] name = "anstyle-parse" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -380,9 +380,9 @@ dependencies = [ [[package]] name = "csv" -version = "1.2.2" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086" +checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" dependencies = [ "csv-core", "itoa", @@ -392,9 +392,9 @@ dependencies = [ [[package]] name = "csv-core" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" +checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" dependencies = [ "memchr", ] @@ -1271,9 +1271,9 @@ checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" [[package]] name = "portable-atomic" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" [[package]] name = "prettytable-rs" @@ -1757,9 +1757,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "spki" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ "base64ct", "der", @@ -2449,9 +2449,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" [[package]] name = "zip" diff --git a/Cargo.toml b/Cargo.toml index e0e7550..8dc9e36 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,10 +1,18 @@ -[package] -name = "goup-rs" +[workspace] +resolver = "2" +members = [ + "goup", + "goup-consts", + "goup-version", + "goup-downloader" +] +default-members = ["goup"] + +[workspace.package] version = "0.2.5" authors = ["thinkgo "] edition = "2021" rust-version = "1.70.0" -build = "build.rs" description = "goup is an elegant Go version manager" keywords = [ "goup", @@ -17,42 +25,17 @@ license = "Apache-2.0" readme = "README.md" homepage = "https://github.com/thinkgos/goup-rs" repository = "https://github.com/thinkgos/goup-rs" -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[[bin]] -name = "goup" -path = "src/main.rs" -[build-dependencies] -version_check = "0.9" -shadow-rs = "0.25" - -[dependencies] -goup-consts = {path = "./goup-consts", version = "0.2.5"} -goup-version = {path = "./goup-version", version = "0.2.5"} -goup-downloader = {path = "./goup-downloader", version = "0.2.5"} - -clap = {version = "4.4", features = ["derive", "env"]} -clap_complete = "4.4" -anyhow = "1.0" -which = "5.0" -prettytable-rs = "0.10" -dialoguer = "0.11" -self_update = {version = "0.39", default-features = false, features = ["rustls", "compression-flate2", "compression-zip-deflate"]} -shadow-rs = "0.25" +[workspace.lints.rust] +unsafe_code = "forbid" +# unused = "allow" # for experimental dev [profile.dev.package."*"] -opt-level = 3 +opt-level = "z" [profile.release] -lto = true +opt-level = "z" strip = true +lto = true codegen-units = 1 -[workspace] -resolver = "2" -members = [ - "goup-consts", - "goup-version", - "goup-downloader" -] \ No newline at end of file diff --git a/README.md b/README.md index f80105d..2c570b8 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,12 @@ There are a bunch of solutions to install Go or manage Go versions outside of a cargo install goup --git https://github.com/thinkgos/goup-rs ``` +or + +```shell +cargo install goup-rs +``` + ### Manual If you want to install manually, there are the steps: diff --git a/goup-consts/Cargo.toml b/goup-consts/Cargo.toml index ada49a3..60c766d 100644 --- a/goup-consts/Cargo.toml +++ b/goup-consts/Cargo.toml @@ -1,21 +1,15 @@ [package] name = "goup-consts" -version = "0.2.5" -authors = ["thinkgo "] -edition = "2021" -rust-version = "1.70.0" -description = "goup-consts goup consts" -keywords = [ - "goup", - "goup", - "golang", - "version-manager", - "tool", -] -license = "Apache-2.0" -readme = "../README.md" -homepage = "https://github.com/thinkgos/goup-rs" -repository = "https://github.com/thinkgos/goup-rs" +version.workspace =true +authors.workspace =true +edition.workspace =true +rust-version.workspace =true +description.workspace =true +keywords.workspace =true +license.workspace =true +readme.workspace =true +homepage.workspace =true +repository.workspace =true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/goup-downloader/Cargo.toml b/goup-downloader/Cargo.toml index 33a9700..b0d72e9 100644 --- a/goup-downloader/Cargo.toml +++ b/goup-downloader/Cargo.toml @@ -1,26 +1,20 @@ [package] name = "goup-downloader" -version = "0.2.5" -authors = ["thinkgo "] -edition = "2021" -rust-version = "1.70.0" -description = "goup-downloader goup downloader" -keywords = [ - "goup", - "goup", - "golang", - "version-manager", - "tool", -] -license = "Apache-2.0" -readme = "../README.md" -homepage = "https://github.com/thinkgos/goup-rs" -repository = "https://github.com/thinkgos/goup-rs" +version.workspace =true +authors.workspace =true +edition.workspace =true +rust-version.workspace =true +description.workspace =true +keywords.workspace =true +license.workspace =true +readme.workspace =true +homepage.workspace =true +repository.workspace =true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -goup-consts = {path = "../goup-consts", version = "0.2.5"} -goup-version = {path = "../goup-version", version = "0.2.5"} +goup-consts = {path = "../goup-consts"} +goup-version = {path = "../goup-version"} anyhow = "1.0" dirs = "5.0" regex = "1.10" diff --git a/goup-version/Cargo.toml b/goup-version/Cargo.toml index f79038f..db4628d 100644 --- a/goup-version/Cargo.toml +++ b/goup-version/Cargo.toml @@ -1,26 +1,20 @@ [package] name = "goup-version" -version = "0.2.5" -authors = ["thinkgo "] -edition = "2021" -rust-version = "1.70.0" -description = "goup-version goup version" -keywords = [ - "goup", - "goup", - "golang", - "version-manager", - "tool", -] -license = "Apache-2.0" -readme = "../README.md" -homepage = "https://github.com/thinkgos/goup-rs" -repository = "https://github.com/thinkgos/goup-rs" +version.workspace =true +authors.workspace =true +edition.workspace =true +rust-version.workspace =true +description.workspace =true +keywords.workspace =true +license.workspace =true +readme.workspace =true +homepage.workspace =true +repository.workspace =true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -goup-consts = {path = "../goup-consts", version = "0.2.5"} +goup-consts = {path = "../goup-consts"} anyhow = "1.0" dirs = "5.0" regex = "1.10" diff --git a/goup/Cargo.toml b/goup/Cargo.toml new file mode 100644 index 0000000..43ad5b0 --- /dev/null +++ b/goup/Cargo.toml @@ -0,0 +1,37 @@ +[package] +name = "goup-rs" +version.workspace =true +authors.workspace =true +edition.workspace =true +rust-version.workspace =true +description.workspace =true +keywords.workspace =true +license.workspace =true +readme.workspace =true +homepage.workspace =true +repository.workspace =true + +build = "build.rs" +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[[bin]] +name = "goup" +path = "src/main.rs" + +[build-dependencies] +version_check = "0.9" +shadow-rs = "0.25" + +[dependencies] +goup-consts = {path = "../goup-consts"} +goup-version = {path = "../goup-version"} +goup-downloader = {path = "../goup-downloader"} + +clap = {version = "4.4", features = ["derive", "env"]} +clap_complete = "4.4" +anyhow = "1.0" +which = "5.0" +prettytable-rs = "0.10" +dialoguer = "0.11" +self_update = {version = "0.39", default-features = false, features = ["rustls", "compression-flate2", "compression-zip-deflate"]} +shadow-rs = "0.25" \ No newline at end of file diff --git a/build.rs b/goup/build.rs similarity index 100% rename from build.rs rename to goup/build.rs diff --git a/src/command/completion.rs b/goup/src/command/completion.rs similarity index 100% rename from src/command/completion.rs rename to goup/src/command/completion.rs diff --git a/src/command/init.rs b/goup/src/command/init.rs similarity index 78% rename from src/command/init.rs rename to goup/src/command/init.rs index 2035324..a567a84 100644 --- a/src/command/init.rs +++ b/goup/src/command/init.rs @@ -3,7 +3,7 @@ use goup_version::Version; use super::Run; -const SETUP_ENV_UNIX: &str = include_str!("../../setup_env_unix"); +const SETUP_ENV_UNIX: &str = include_str!("../../../setup_env_unix"); #[derive(Args, Debug, PartialEq)] pub struct Init; diff --git a/src/command/install.rs b/goup/src/command/install.rs similarity index 100% rename from src/command/install.rs rename to goup/src/command/install.rs diff --git a/src/command/list.rs b/goup/src/command/list.rs similarity index 100% rename from src/command/list.rs rename to goup/src/command/list.rs diff --git a/src/command/mod.rs b/goup/src/command/mod.rs similarity index 99% rename from src/command/mod.rs rename to goup/src/command/mod.rs index 32bf919..0ee202b 100644 --- a/src/command/mod.rs +++ b/goup/src/command/mod.rs @@ -26,7 +26,7 @@ use self::upgrade::Upgrade; shadow!(build); const VERSION: &str = shadow_rs::formatcp!( r#"{} -author: {} +author: {} git_commit: {} git_full_commit: {} build_time: {} diff --git a/src/command/remove.rs b/goup/src/command/remove.rs similarity index 100% rename from src/command/remove.rs rename to goup/src/command/remove.rs diff --git a/src/command/search.rs b/goup/src/command/search.rs similarity index 100% rename from src/command/search.rs rename to goup/src/command/search.rs diff --git a/src/command/set.rs b/goup/src/command/set.rs similarity index 100% rename from src/command/set.rs rename to goup/src/command/set.rs diff --git a/src/command/upgrade.rs b/goup/src/command/upgrade.rs similarity index 100% rename from src/command/upgrade.rs rename to goup/src/command/upgrade.rs diff --git a/src/lib.rs b/goup/src/lib.rs similarity index 100% rename from src/lib.rs rename to goup/src/lib.rs diff --git a/src/main.rs b/goup/src/main.rs similarity index 100% rename from src/main.rs rename to goup/src/main.rs