summaryrefslogtreecommitdiff
path: root/src/cache.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/cache.rs')
-rw-r--r--src/cache.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/cache.rs b/src/cache.rs
new file mode 100644
index 0000000..30c9f09
--- /dev/null
+++ b/src/cache.rs
@@ -0,0 +1,36 @@
1use std::{collections::HashMap, fs::{read_dir, copy}};
2
3use crate::devdir;
4
5/// .
6///
7/// # Panics
8///
9/// Panics if .
10pub fn get_cached_versions(path: &str) -> HashMap<String, String> {
11 let mut versions: HashMap<String, String> = HashMap::new();
12 for file in read_dir(devdir(path)).unwrap() {
13 let path = file.unwrap().path();
14 if path.is_file() && path.extension().ok_or("BAH").unwrap() == "jar" {
15 let pathstr = path.to_str().ok_or("BAH").unwrap();
16 let namesplit: Vec<&str> = pathstr.split('.').collect();
17 versions.insert(
18 String::from(namesplit[namesplit.len() - 2]),
19 String::from(pathstr),
20 );
21 }
22 }
23 versions
24}
25
26/// .
27///
28/// # Panics
29///
30/// Panics if .
31pub fn copy_cached_version(version_path: &str, download_path: &str) {
32 let versplit: Vec<&str> = version_path.split('/').collect();
33 let download = format!("{}{}", download_path, versplit[versplit.len() - 1]);
34 // println!("{:#?}", download);
35 copy(version_path, download).unwrap();
36}