Add more cli options

This commit is contained in:
Kasper Juul Hermansen 2022-11-27 11:23:49 +01:00
parent 1b350f58b4
commit 09ae29fe9b
Signed by: kjuulh
GPG Key ID: 57B6E1465221F912
6 changed files with 93 additions and 10 deletions

2
.env
View File

@ -1,2 +0,0 @@
GITEA_USERNAME=kjuulh
GITEA_API_TOKEN=c0bd801cc9a7f2ed559ea45d603afc92f5443f19

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
/target /target
.cuddle/ .cuddle/
target/ target/
.env

65
Cargo.lock generated
View File

@ -2,6 +2,15 @@
# It is not intended for manual editing. # It is not intended for manual editing.
version = 3 version = 3
[[package]]
name = "ansi_term"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
dependencies = [
"winapi",
]
[[package]] [[package]]
name = "async-trait" name = "async-trait"
version = "0.1.58" version = "0.1.58"
@ -69,6 +78,21 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clap"
version = "2.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
dependencies = [
"ansi_term",
"atty",
"bitflags",
"strsim 0.8.0",
"textwrap",
"unicode-width",
"vec_map",
]
[[package]] [[package]]
name = "clap" name = "clap"
version = "4.0.18" version = "4.0.18"
@ -78,7 +102,7 @@ dependencies = [
"atty", "atty",
"bitflags", "bitflags",
"clap_lex", "clap_lex",
"strsim", "strsim 0.10.0",
"termcolor", "termcolor",
] ]
@ -107,6 +131,15 @@ version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
[[package]]
name = "dotenv"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f"
dependencies = [
"clap 2.34.0",
]
[[package]] [[package]]
name = "encoding_rs" name = "encoding_rs"
version = "0.8.31" version = "0.8.31"
@ -583,6 +616,7 @@ dependencies = [
name = "octopush" name = "octopush"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"dotenv",
"eyre", "eyre",
"octopush_cli", "octopush_cli",
"tokio", "tokio",
@ -594,7 +628,7 @@ dependencies = [
name = "octopush_cli" name = "octopush_cli"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"clap", "clap 4.0.18",
"eyre", "eyre",
"octopush_core", "octopush_core",
"octopush_infra", "octopush_infra",
@ -1015,6 +1049,12 @@ dependencies = [
"winapi", "winapi",
] ]
[[package]]
name = "strsim"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
[[package]] [[package]]
name = "strsim" name = "strsim"
version = "0.10.0" version = "0.10.0"
@ -1055,6 +1095,15 @@ dependencies = [
"winapi-util", "winapi-util",
] ]
[[package]]
name = "textwrap"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
dependencies = [
"unicode-width",
]
[[package]] [[package]]
name = "thread_local" name = "thread_local"
version = "1.1.4" version = "1.1.4"
@ -1252,6 +1301,12 @@ dependencies = [
"tinyvec", "tinyvec",
] ]
[[package]]
name = "unicode-width"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
[[package]] [[package]]
name = "unsafe-libyaml" name = "unsafe-libyaml"
version = "0.2.4" version = "0.2.4"
@ -1290,6 +1345,12 @@ version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
[[package]]
name = "vec_map"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
[[package]] [[package]]
name = "version_check" name = "version_check"
version = "0.9.4" version = "0.9.4"

View File

@ -28,3 +28,4 @@ tokio = { workspace = true }
tracing = { workspace = true } tracing = { workspace = true }
tracing-subscriber = { version = "0.3.16", features = ["json", "env-filter"] } tracing-subscriber = { version = "0.3.16", features = ["json", "env-filter"] }
dotenv = { version = "0.15.0", features = ["clap", "cli"] }

View File

@ -21,10 +21,24 @@ pub fn execute_cmd() -> Command {
.required(true), .required(true),
) )
.arg( .arg(
Arg::new("gitea-http-token") Arg::new("gitea-api-token")
.long("gitea-http-token") .long("gitea-api-token")
.action(ArgAction::Set) .action(ArgAction::Set)
.env("GITEA_HTTP_TOKEN") .env("GITEA_API_TOKEN")
.required(false),
)
.arg(
Arg::new("gitea-username")
.long("gitea-username")
.action(ArgAction::Set)
.env("GITEA_USERNAME")
.required(false),
)
.arg(
Arg::new("gitea-url")
.long("gitea-url")
.action(ArgAction::Set)
.env("GITEA_URL")
.required(false), .required(false),
) )
} }
@ -34,13 +48,18 @@ pub async fn execute_subcommand(args: &ArgMatches) -> eyre::Result<()> {
.get_one::<String>("action") .get_one::<String>("action")
.ok_or(eyre::anyhow!("--action is required"))?; .ok_or(eyre::anyhow!("--action is required"))?;
let gitea_http_token = args.get_one::<String>("gitea-http-token"); let gitea_http_token = args.get_one::<String>("gitea-api-token");
let gitea_username = args.get_one::<String>("gitea-username");
let gitea_url = args.get_one::<String>("gitea-url");
let service_register = ServiceRegister::new( let service_register = ServiceRegister::new(
LocalGitProviderOptions { http_auth: None }, LocalGitProviderOptions { http_auth: None },
DefaultGiteaClientOptions { DefaultGiteaClientOptions {
url: "https://git.front.kjuulh.io/api/v1".into(), url: gitea_url.map(|g| g.clone()).unwrap_or("".into()),
basicauth: gitea_http_token.map(|t| t.clone()), basicauth: gitea_username
.zip(gitea_http_token)
.map(|(u, ht)| format!("{}:{}", u, ht))
.map(|t| t.clone()),
}, },
); );

View File

@ -1,7 +1,10 @@
use dotenv::dotenv;
use tracing_subscriber::prelude::*; use tracing_subscriber::prelude::*;
#[tokio::main] #[tokio::main]
async fn main() -> eyre::Result<()> { async fn main() -> eyre::Result<()> {
dotenv()?;
tracing_subscriber::registry() tracing_subscriber::registry()
.with(tracing_subscriber::EnvFilter::new( .with(tracing_subscriber::EnvFilter::new(
std::env::var("RUST_LOG") std::env::var("RUST_LOG")