Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
@@ -12,7 +12,7 @@ use cuddle_please_misc::{
|
||||
VcsClient,
|
||||
};
|
||||
use tracing::Level;
|
||||
use tracing_subscriber::{EnvFilter};
|
||||
use tracing_subscriber::EnvFilter;
|
||||
|
||||
use crate::{
|
||||
config_command::{ConfigCommand, ConfigCommandHandler},
|
||||
@@ -90,6 +90,35 @@ impl Command {
|
||||
}
|
||||
|
||||
pub fn execute(self, current_dir: Option<&Path>) -> anyhow::Result<()> {
|
||||
match &self.commands {
|
||||
Some(Commands::Release {}) => {
|
||||
let (config, git_client, gitea_client) = self.get_deps(current_dir)?;
|
||||
ReleaseCommandHandler::new(self.ui, config, git_client, gitea_client)
|
||||
.execute(self.global.dry_run)?;
|
||||
}
|
||||
Some(Commands::Config { command }) => {
|
||||
let (config, _, _) = self.get_deps(current_dir)?;
|
||||
ConfigCommandHandler::new(self.ui, config).execute(command)?;
|
||||
}
|
||||
Some(Commands::Gitea { command }) => {
|
||||
let (config, _, gitea_client) = self.get_deps(current_dir)?;
|
||||
|
||||
GiteaCommandHandler::new(self.ui, config, gitea_client)
|
||||
.execute(command, self.global.token.expect("token to be set").deref())?;
|
||||
}
|
||||
Some(Commands::Doctor {}) => {
|
||||
DoctorCommandHandler::new(self.ui).execute()?;
|
||||
}
|
||||
None => {}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn get_deps(
|
||||
&self,
|
||||
current_dir: Option<&Path>,
|
||||
) -> anyhow::Result<(PleaseConfig, VcsClient, DynRemoteGitClient)> {
|
||||
let config = self.build_config(current_dir)?;
|
||||
let git_client = self.get_git(&config)?;
|
||||
let gitea_client = self.get_gitea_client(&config);
|
||||
@@ -110,25 +139,7 @@ impl Command {
|
||||
tracing_subscriber::fmt().with_env_filter(env_filter).init();
|
||||
}
|
||||
|
||||
match &self.commands {
|
||||
Some(Commands::Release {}) => {
|
||||
ReleaseCommandHandler::new(self.ui, config, git_client, gitea_client)
|
||||
.execute(self.global.dry_run)?;
|
||||
}
|
||||
Some(Commands::Config { command }) => {
|
||||
ConfigCommandHandler::new(self.ui, config).execute(command)?;
|
||||
}
|
||||
Some(Commands::Gitea { command }) => {
|
||||
GiteaCommandHandler::new(self.ui, config, gitea_client)
|
||||
.execute(command, self.global.token.expect("token to be set").deref())?;
|
||||
}
|
||||
Some(Commands::Doctor {}) => {
|
||||
DoctorCommandHandler::new(self.ui).execute()?;
|
||||
}
|
||||
None => {}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
return Ok((config, git_client, gitea_client));
|
||||
}
|
||||
|
||||
fn build_config(&self, current_dir: Option<&Path>) -> Result<PleaseConfig, anyhow::Error> {
|
||||
|
Reference in New Issue
Block a user