summaryrefslogtreecommitdiff
path: root/src/commands/update.rs
diff options
context:
space:
mode:
authorfxqnlr <[email protected]>2024-09-04 12:31:02 +0200
committerfxqnlr <[email protected]>2024-09-04 12:31:02 +0200
commit942558c75200aaad0b4d8561a1f6999f88f843a4 (patch)
tree8be4632c0677613c277403cb11d41cb6dff12b5b /src/commands/update.rs
parent29635b9e3833296b2c908914104ba7165d22d3d5 (diff)
downloadmodlist-942558c75200aaad0b4d8561a1f6999f88f843a4.tar
modlist-942558c75200aaad0b4d8561a1f6999f88f843a4.tar.gz
modlist-942558c75200aaad0b4d8561a1f6999f88f843a4.zip
remove allow too_many_lines and fix them
Diffstat (limited to 'src/commands/update.rs')
-rw-r--r--src/commands/update.rs84
1 files changed, 44 insertions, 40 deletions
diff --git a/src/commands/update.rs b/src/commands/update.rs
index c7965e3..f83030d 100644
--- a/src/commands/update.rs
+++ b/src/commands/update.rs
@@ -1,5 +1,3 @@
1#![allow(clippy::too_many_lines)]
2
3use indicatif::{MultiProgress, ProgressBar, ProgressStyle}; 1use indicatif::{MultiProgress, ProgressBar, ProgressStyle};
4 2
5use crate::{ 3use crate::{
@@ -70,44 +68,7 @@ pub async fn update(
70 let mut updatestack: Vec<Version> = vec![]; 68 let mut updatestack: Vec<Version> = vec![];
71 69
72 for id in mods { 70 for id in mods {
73 let info = mods_get_info(config, &id)?; 71 update_mod(config, id, list_u_p.clone(), &current_list, &mut updatestack, &mut current_versions, clean).await?;
74 list_u_p.set_message(format!("Update {}", info.title));
75
76 //Skip check if version is set
77 if userlist_get_set_version(config, &current_list.id, &id)? {
78 list_u_p.inc(1);
79 continue;
80 }
81
82 //Getting current installed version for disable or delete
83 let disable_version =
84 userlist_get_current_version(config, &current_list.id, &id)?;
85
86 updatestack.push(
87 match specific_update(
88 config,
89 clean,
90 current_list.clone(),
91 &id,
92 &list_u_p,
93 )
94 .await
95 {
96 Ok(ver) => {
97 current_versions.push((disable_version, id));
98 ver
99 }
100 Err(e) => {
101 if e.to_string() == "Mod: NO_UPDATE_AVAILABLE" {
102 } else {
103 return Err(e);
104 };
105 list_u_p.inc(1);
106 continue;
107 }
108 },
109 );
110 list_u_p.inc(1);
111 } 72 }
112 73
113 list_u_p.finish_with_message(format!( 74 list_u_p.finish_with_message(format!(
@@ -173,6 +134,49 @@ pub async fn update(
173 Ok(()) 134 Ok(())
174} 135}
175 136
137async fn update_mod(config: &Cfg, id: String, list_u_p: ProgressBar, current_list: &List, updatestack: &mut Vec<Version>, current_versions: &mut Vec<(String, String)>, clean: bool) -> MLE<()> {
138 let info = mods_get_info(config, &id)?;
139 list_u_p.set_message(format!("Update {}", info.title));
140
141 //Skip check if version is set
142 if userlist_get_set_version(config, &current_list.id, &id)? {
143 list_u_p.inc(1);
144 return Ok(());
145 }
146
147 //Getting current installed version for disable or delete
148 let disable_version =
149 userlist_get_current_version(config, &current_list.id, &id)?;
150
151 updatestack.push(
152 match specific_update(
153 config,
154 clean,
155 current_list.clone(),
156 &id,
157 &list_u_p,
158 )
159 .await
160 {
161 Ok(ver) => {
162 current_versions.push((disable_version, id.to_string()));
163 ver
164 }
165 Err(e) => {
166 if e.to_string() == "Mod: NO_UPDATE_AVAILABLE" {
167 } else {
168 return Err(e);
169 };
170 list_u_p.inc(1);
171 return Ok(());
172 }
173 },
174 );
175 list_u_p.inc(1);
176
177 Ok(())
178}
179
176async fn specific_update( 180async fn specific_update(
177 config: &Cfg, 181 config: &Cfg,
178 clean: bool, 182 clean: bool,