From 11e64fc7560de3cd0def718edf68c31e3dc8be72 Mon Sep 17 00:00:00 2001 From: fxqnlr Date: Wed, 4 Sep 2024 15:08:55 +0200 Subject: move stuff around, remove lib.rs for overview --- src/commands/list.rs | 193 +++++++++++++++++++++++---------------------------- 1 file changed, 87 insertions(+), 106 deletions(-) (limited to 'src/commands/list.rs') diff --git a/src/commands/list.rs b/src/commands/list.rs index 148bd16..23a9f0f 100644 --- a/src/commands/list.rs +++ b/src/commands/list.rs @@ -1,124 +1,105 @@ use indicatif::{ProgressBar, ProgressStyle}; use crate::{ - config::Cfg, - db::{ - config_change_current_list, config_get_current_list, lists_get, + config::Cfg, data::modloader::Modloader, db::{ + config_change_current_list, lists_get, lists_get_all_ids, lists_insert, lists_remove, lists_version, - }, - error::{EType, MLErr, MLE}, - update, Modloader, STYLE_OPERATION, + }, error::{EType, MLErr, MLE}, update, STYLE_OPERATION }; -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct List { - pub id: String, - pub mc_version: String, - pub modloader: Modloader, - pub download_folder: String, +/// # Errors +pub fn add( + config: &Cfg, + id: &str, + mc_version: &str, + modloader: &Modloader, + directory: &str, +) -> MLE<()> { + let p = ProgressBar::new_spinner(); + p.set_style( + ProgressStyle::with_template(STYLE_OPERATION).map_err(|_| { + MLErr::new(EType::LibIndicatif, "template error") + })?, + ); + p.set_message(format!("Create {id}")); + lists_insert(config, id, mc_version, modloader, directory)?; + p.finish_with_message(format!("Created {id}")); + Ok(()) } -impl List { - /// # Errors - pub fn get_current_list(config: &Cfg) -> MLE { - let id = config_get_current_list(config)?; - lists_get(config, &id) - } - - /// # Errors - pub fn add( - config: &Cfg, - id: &str, - mc_version: &str, - modloader: &Modloader, - directory: &str, - ) -> MLE<()> { - let p = ProgressBar::new_spinner(); - p.set_style( - ProgressStyle::with_template(STYLE_OPERATION).map_err(|_| { - MLErr::new(EType::LibIndicatif, "template error") - })?, - ); - p.set_message(format!("Create {id}")); - lists_insert(config, id, mc_version, modloader, directory)?; - p.finish_with_message(format!("Created {id}")); - Ok(()) - } +/// # Errors +pub fn change(config: &Cfg, id: &str) -> MLE<()> { + let p = ProgressBar::new_spinner(); + p.set_style( + ProgressStyle::with_template(STYLE_OPERATION).map_err(|_| { + MLErr::new(EType::LibIndicatif, "template error") + })?, + ); + p.set_message(format!("Change default list to {id}")); - /// # Errors - pub fn change(config: &Cfg, id: &str) -> MLE<()> { - let p = ProgressBar::new_spinner(); - p.set_style( - ProgressStyle::with_template(STYLE_OPERATION).map_err(|_| { - MLErr::new(EType::LibIndicatif, "template error") - })?, - ); - p.set_message(format!("Change default list to {id}")); + if !lists_get_all_ids(config)?.into_iter().any(|l| l == id) { + return Err(MLErr::new(EType::ArgumentError, "List not found")); + }; + config_change_current_list(config, id)?; - if !lists_get_all_ids(config)?.into_iter().any(|l| l == id) { - return Err(MLErr::new(EType::ArgumentError, "List not found")); - }; - config_change_current_list(config, id)?; - - p.finish_with_message(format!("Changed default list to {id}")); - Ok(()) - } + p.finish_with_message(format!("Changed default list to {id}")); + Ok(()) +} - /// # Errors - pub fn remove(config: &Cfg, id: &str) -> MLE<()> { - let p = ProgressBar::new_spinner(); - p.set_style( - ProgressStyle::with_template(STYLE_OPERATION).map_err(|_| { - MLErr::new(EType::LibIndicatif, "template error") - })?, - ); - p.set_message(format!("Remove {id}")); - lists_remove(config, id)?; - p.finish_with_message(format!("Removed {id}")); - Ok(()) - } +/// # Errors +pub fn remove(config: &Cfg, id: &str) -> MLE<()> { + let p = ProgressBar::new_spinner(); + p.set_style( + ProgressStyle::with_template(STYLE_OPERATION).map_err(|_| { + MLErr::new(EType::LibIndicatif, "template error") + })?, + ); + p.set_message(format!("Remove {id}")); + lists_remove(config, id)?; + p.finish_with_message(format!("Removed {id}")); + Ok(()) +} - ///Changing the current lists version and updating it - /// - /// #Arguments - /// - /// * `config` - The current config - /// * `args` - All args, to extract the new version - /// # Errors - pub async fn version( - config: &Cfg, - id: &str, - mc_version: String, - download: bool, - delete: bool, - ) -> MLE<()> { - let p = ProgressBar::new_spinner(); - p.set_style( - ProgressStyle::with_template(STYLE_OPERATION).map_err(|_| { - MLErr::new(EType::LibIndicatif, "template error") - })?, - ); - p.set_message(format!( - "Change version for list {id} to minecraft version: {mc_version}" - )); +///Changing the current lists version and updating it +/// +/// #Arguments +/// +/// * `config` - The current config +/// * `args` - All args, to extract the new version +/// # Errors +pub async fn version( + config: &Cfg, + id: &str, + mc_version: String, + download: bool, + delete: bool, +) -> MLE<()> { + let p = ProgressBar::new_spinner(); + p.set_style( + ProgressStyle::with_template(STYLE_OPERATION).map_err(|_| { + MLErr::new(EType::LibIndicatif, "template error") + })?, + ); + p.set_message(format!( + "Change version for list {id} to minecraft version: {mc_version}" + )); - lists_version(config, id, &mc_version)?; + lists_version(config, id, &mc_version)?; - p.finish_with_message(format!( - "Changed version for list {id} to minecraft version: {mc_version}" - )); + p.finish_with_message(format!( + "Changed version for list {id} to minecraft version: {mc_version}" + )); - let list = lists_get(config, id)?; - update(config, vec![list], true, download, delete).await - } + let list = lists_get(config, id)?; + update(config, vec![list], true, download, delete).await +} - /// # Errors - pub fn list(config: &Cfg) -> MLE<()> { - let lists = lists_get_all_ids(config)?; - for list in lists { - let l = lists_get(config, &list)?; - println!("{}: | {} | {}", l.id, l.mc_version, l.modloader); - } - Ok(()) +/// # Errors +pub fn list(config: &Cfg) -> MLE<()> { + let lists = lists_get_all_ids(config)?; + for list in lists { + let l = lists_get(config, &list)?; + println!("{}: | {} | {}", l.id, l.mc_version, l.modloader); } + Ok(()) } -- cgit v1.2.3